はてなキーワード: ソースコードとは
どの部分を汎用的につくり、どの部分をやっつけで作るか、そして、どの部分をパフォーマンス優先でつくり、どの部分を可読性優先でつくるかは、そのソフトウェアステムを使って今後どのようなビジネス展開をするか、ということと一体不可分だ。
コーディング競技に長けていることは、仕事のパフォーマンスと負の相関関係があります
ttps://b.hatena.ne.jp/entry/s/twitter.com/hackernewsj/status/1338659525562392578
404 Blog Not Found:博士の異常なアルゴリズム、または私は如何にして心配するのを止めて線形探索を愛するようになったか
「とりあえず動く」が、「これ以上正しく動かせない」よりずっとずっと大事なこと
[biz]Done is better than perfect.Facebook
5年ほどもてばいいPC用に25年保証という過剰品質のDRAMを過剰技術でつくっていたエルピーダ:没落する日本の半導体業界に衝撃告発
いい歳になってから未経験でITへ転職して酷い目にあったというか、完全に自業自得なんだけどやめとけばよかったという暗いお話です。
小売業のルート営業で業績が悉く伸び悩み、社内でちょっとした諍いからトラブルを起こしてしまい飛び出すように仕事を辞め、
職業訓練校でJavaとかいうプログラミングの、ソースコードを紙を見ながら打ち込むという作業を半年ほど行ったのち、
「業務は経験したことないけど、プログラミングは経験者です!」
と本当のような本当じゃないけどうそじゃないような本当の事を面接で言い続けてIT企業を受け続けたが、まぁ落とされに落とされ・・・
しかし1社だけ、何を思ったか奇跡的に拾ってくれ、そこに勤めることになった。
大阪のちょっと南の方にある、繁華街からは離れたところにある中小のIT企業なのだが、
まぁ開発は割と手広く結構なんでもやってる感じのところだった。
採用後、さっそく開発部門に配属され、レベルに見合った作業を割り当てるといわれ、上司から渡されたのは
「画面のHTMLとJavaScriptを仕様の通り修正する」というお仕事だった。
しかもJavaじゃなかったので「これは何ですか?」という質問をせざるを得ず、さっそく現場担当者に「なんだって?」て顔をさせる羽目になった。
ブラウザで表示されているインターネットがHTMLとかいうので表示されていることを知ったのはこの時だった。
Javaをテキスト通りに書けばテキスト通りに動くのは常識だ。
ソースコードを書き写して動きを見て、それからそのソースコードを理解するといった方法が一番効率よくできると自分では考えているので、
まずは実装の答えを教えてほしいとお願いした。
答えは即答で「No」だった。
とりあえず、やったこともないことをやろうとしているのだから、当然模範解答があって然るべきだと反論したが、
と遠まわしに言われてしまった。
曰く、
「経験者として雇っている以上、未経験でもそれなりに学ぶ手順は理解しているものと考えている。
とりあえず、似たような処理記述は既存のソースにあるから、それでまずは勉強してみるとよい。
とりあえずスケジュールは設定しないけど、1週間程度で様子を教えて」
とのことだった。
1週間、プログラムと睨めっこしたが、HTMLと謎の$マークが大量のプログラムっぽい記述が理解できず、何もしないまま1週間が経ってしまった。
上司は「分らんのなら、相談してよ・・・」と首を捻りながら話していたが、相談の仕方を教えてもらったことがないので相談しようがなかったのだ・・・。
そんなこんななやりとりと似たような作業をなんとまぁ半年ほど続ける羽目になり、このあたりですでに辞めたくなってきていた。
質問したときも、どうすれば正解なのかの答えを教えてほしいのに、「方法は教えたからあとは自分で調べて考えてやってくれ」の一点張りで疲れてしまう。
仕方がないからそれっぽく調べてみるけど英語サイトばっかり出てきて読めないので、それっぽいソースをコピペして貼り付けてたら、レビューする会でバレでめっちゃ怒られたり。
割り振られた仕事やってやってんのになんなんだっていう怒りだけがつのってイライラする毎日だった。
そんな時、ふと社内の別部署のメンバーからなぜか酒の場に誘われ、仕事帰りに飲みに行くことになった。
その時、上記のようなことを酔った勢いで思いのたけをぶつけてみたところ、思ってもみなかった言葉が返ってきた。
「そりゃぁ中途で採用してるんだから、それなりに成果が残せて当然な人材なわけで、
残念ながらみんな君を相手するほどの予算をもっていないだけだ。
ほっといても、それなりに調べてそれなりに形にできる人間を会社は採用しているという認識だし、
当然部署の人間は全員、君をそういう人間として接するだろうね」
なるほど、自分は「それなりに出来る奴」と勘違いされて採用されたのか、と納得した。
そりゃ多くの企業からは落とされるわ・・・とちょっと納得もしたが・・・
いや、それじゃ困る、仕事にならない、ちゃんと素人として接してくれないと、と食い下がってみるも
「そんな態度じゃ社内全員が困ってしまう。質問するのは全然よい。
誰もが初めてなことはある。
だが、リソースは限られているのだから、残念ながら君を新卒と同じ扱いで接することはできない。
質問するにもしっかりと準備して、相手の判断材料もしっかりと用意したうえで相談するように。
と綺麗にまとめられてしまった。
家路についたとき、職業訓練校に行ってしまったことをちょっとだけ後悔した・・・。
あと、どうやら家にPCが無いのは問題らしいということにこの日気が付いた。
これだけは収穫だったとも思う。
翌日、少し奮発して80000円くらいのノートパソコンを買った。
自分は頭を使うのがダメで、とにかく頭使えと言われるのが大嫌いだった。
なのに、この業界はとにかく頭を使わないといけないらしい・・・。
調べる時ですら調べるためのキーワードを考えて、そこから色々考えて形にする・・・すべて自分じゃできないことだ。
なのになぜこの業界に・・・自問自答してしまうが、一種の憧れみたいなものがあったのはまぁ嘘ではない。
しかし、この世界は自分のような人間がいていい場所ではなかった。
インテリジェンスの足りない人間がそこにいるだけでダメージを受ける、結界の中の世界だった。
自分なりに考えてはみるが、分からずにネット上のプログラムを組み合わせて、レビューしたときに説明ができなくて
「真面目にやれ、今からやり直せ」
と言われ、掘った穴を戻してまた穴を掘るみたいな事を繰り返す毎日が続き、いよいよ限界がきてしまった。
正直、この1年は自分の中ではほぼ無駄な1年だったと思っている。
職業訓練校で、Javaの書き方だけじゃなくて、調べ方であるとか、業界を取り巻く最新情報であるとか、
仕事の進め方とかもちゃんと教えてくれていれば、こういうこともなくちゃんとできたんじゃないかなと思っているけど、
AKSの運用に関するベストプラクティス(原題: Applying best practices to Azure Kubernetes Service (AKS))がMS Igniteというイベントで話されていたので
https://myignite.techcommunity.microsoft.com/sessions/81598?source=SessionDeck
https://github.com/Azure/aks-bestpractices-ignite19
RTO(リカバリ時間目標)とRPO(目標複数時点)に応じて下記の4通りのシナリオがある
4にいくにしたがって
RTO=復旧するまでの時間が短くなる
17:22~
23:48~
職場の人たちのプログラミングの方法というか、書き方というか、意識というか、それが私と違っていてちょっとツライ。
public class X0001 { public static final String CONST_STRING_VALUE_ONE = "1"; public static final String CONST_STRING_VALUE_TWO = "2"; public static final String CONST_STRING_VALUE_THREE = "2"; ... public static final String CONST_STRING_VALUE_ELEVEN = "11";
「XXコードは2文字で入力して下さい」とかそういうメッセージを表示する時の2の部分に、使ってるんだけど、
ソースコードにマジックナンバーを書くの禁止っていうルールに反しないようにするためのfinal String.
code123 というStringな変数の中身が、X1234.RET_CODE_NG と等しいか調べるのに、
if (X1234.RET_CODE_NG.equals(code123)) { ...
って書くのも気持ち悪い。code123がnullだった時の対策としてのひっくり返し記述なんだろうけどさ。
if ( code123 != null && code123.equals( X1234.RET_CODE_NG )) { ...
複雑な計算をする処理があるクラスで、メソッドもフィールドも全部staticで書いてる人とか、
それマルチスレッドで動いたら計算内容がぶっ壊れる可能性ありませんか、ということで、
非staticで書き直してたけど、なぜそれがダメなのかわかってない風だった.
http://b.hatena.ne.jp/entry/s/headlines.yahoo.co.jp/hl?a=20190729-00000074-mai-sctch
このニュースがバズった後、ニュースにも出ていない問題が議会で追及されていたので、滋賀県議会のページ(令和元年9月定例会議(第9号~第15号)-09月30日-04号)をもとに、一部読みやすく編集してみた。
色々ツールとかあるし色んな所でやり方が紹介されているから余裕でできるだろーって思う人多いと思うし、自分もそう思ってたけど冷静に考えて無理。
開発側が望むこととしてはサイト全体での利用が対象だけど大抵のツールは各ページごとにしか評価しないので、ガバガバ。例えばChromeにもCSSカバレッジ図る機能あるけどさ、ページ単位でしか動かない。
仮にサイト全体をクロールするとしても、JSの機能とか、ユーザーのログイン状況とか、ユーザーのステータスとかで表示が切り替わったときに有効になる特殊なCSSとかもあるわけで、それを全部カバーするにはどれくらいの労力が必要なのかって考えただけで萎える罠
ツールによってはソースコードに出てくる文字すべてをCSSのセレクタ名になりえる値として評価するとかいう超保守的なアルゴリズムで動くのもあるみたいだけど、それはそれでやっぱり不要なCSS残りまくるんじゃねーのと思います。
そういうの嫌ってJSの中にCSSを書きましょうみたいな変な宗教じみなムーブメントもおきてるけど、それってもうCSSとしてどうなん?って感じする。気持ち悪いけどこれに対する反論を適切に言語化できないので、必要だよ!って押し切られたらきつい。てかもうそういうことするくらいなら全部style属性直書きで良いんじゃない?って感じもする。
CSSってそもあってもなくても別にいいわけで、だってそうでしょW3Mとかでページ見たら装飾全部ぶっ殺されるわけですし、最新のブラウザだってスタイルを切る機能あるわけで、本来CSSみたいなおまけ機能がこうも重要に使われるものじゃなかったんだよ。でも実際は重要です。これが現実。
使っていないCSSが気になる〜。って人はそもCSSをアホみたいに使いすぎてるだけだし、最初からカスケーディングの設計しっかりしとけよ!っていうこと以外言うこと無い気がする。
くらいで良いんじゃね?って思うけど、どうしてもカテゴリを横断して出現する統一されたパーツみたいなのが出てきて、そういうパーツのスタイルがサービス全体のベーススタイルに追加されていって、肥大化する。ってのをよく見かける感じです。
まぁ不要なCSSを消すには、CSS自体のボリュームを下げて、適切にカスケーディングして、CSSを管理する人がこまめにメンテナンスする。以外に無いよな〜って言うのが結論だけど、こういうことって割と常識というか暗黙的にみんな知ってるっぽい気がするけど、ググってもあんまり情報出てこないんだけど、お前ら本当はクソみたいなCSSに埋もれて動けなくなってたりしないの?
自分は別にCSSそんなに管理してないけど、たまに手を付けるとまじでゴミまみれで、CSS書くやつはちゃんと捨てるときのことも考えてCSS書けよゴミ屋敷の住人じゃないんだから、集めっぱなしで捨てないとかアホのやることだろまじで。っていう感じです。