はてなキーワード: コードとは
いろんなアプリケーションのメンテ(バグ取りとか細かい機能追加とか)を何度か経験してきた。
主にテキストファイルとかCSVファイルとかExcelファイルとかを入出力するものばかりだったんだが、その大半がファイルの拡張子をグローバル変数化していた。
こんな感じ
const TxtFileExt = ".txt"; const CsvFileExt = ".csv"; const ExelFileExt = ".xlsx";
outFileName = 〇〇 + ×× + "ABCDEFG" + TxtFileExt;
みたいな指定をしなきゃならない。
あと、プログラム言語の標準的なメソッドのあらゆる引数も全部変数で定義されてて、そのまま渡すのは禁止、みたいな規約になってる。
たとえば引数が三種類(true、false(未指定時のデフォルト値)、任意の数値(ただし当該プログラムでは0、10、25以外指定不可))しかないやつはこんな感じ。
const 〇〇ParamTrue = true; const 〇〇ParamFalse = false; const 〇〇ParamIntMin = 0; const 〇〇ParamIntMid = 10; const 〇〇ParamIntMax = 25;
const charCodeSJIS = "Shift_JIS"; const charCodeUtf8 = "UTF-8";
以前関わった改修内容に「××の処理は開始時と終了時にそれぞれUTF-8(BOMなし)形式でログを出力する」みたいなのがあって、普通に文字コード指定する部分に「UTF-8」で直に書いたら、規約に従ってないからとコードレビューで指摘されて差し戻されたんだけど、そもそもこういう規約って何の意味があるの?
従来プログラミング業界においては、やれ「ググる力が重要」だの、やれ「分からないことはググればいい」だのと言われてきたわけだが、もうそろそろこういう妄言は根絶されるべきだ。
そもそも、専門知識の要る分野でそれなりの水準の仕事をしようと思えば、ググって済むようなことはほとんどない。
実際、プログラミング以外のあらゆる分野で「ググればいい」なんて言われることはほぼ無い。その分野の仕事に必要な基礎知識を身につける方が圧倒的にウェイトが高いからだ。
「ググる力」とか言ってるアホは、じゃあためしに俺の手元に、タネンバウムの「コンピュータネットワーク」第6版があったから、これと同等の知識を、コーディング時の調べ物だけで身につけてみてくれないか。
こんな知識は業務で必要ない?そりゃお前がその程度の仕事しかしてないってだけだろ(笑)
ネットのサンプルコードコピペするしか能のないIT土方、コンピュータサイエンスや数学にコンプレックス持ってる低学歴は、さっさとエンジニアやめろ。少なくとも、他人(とくにプログラミング初学者)を自分と同じ水準に貶めるな。
ボイジャー1号の問題が1つのチップに起因することを突き止めたNASAのチームは、コマンドを送ってコンピューターシステムの再起動を試み、根本原因を探ろうとした。
3月1日にコマンドを送ったところ、同月3日になって、飛行データシステムの一部に、解読不能なデータとは違う挙動があることを発見。この信号は、飛行データシステムが正常に機能しているかどうかを判断するために使っていたそれまでの形式ではなかったものの、NASAのディープスペースネットワークで解読することに成功した。
この内容を調べた結果、問題の原因が判明。飛行データシステムのメモリの3%が破損していたことが分かった。システムのメモリの一部を保存していたチップが、同コンピューターのソフトウェアコードの一部も含めて正常に作動していなかった。チップの不具合の原因は不明だが、劣化した可能性や、宇宙空間からのエネルギー粒子が衝突した可能性が考えられるという。
科学データと工学データの解読ができなくなったのは、このチップに保存されていたコードの損失が原因だった。
このチップを修理する手段がなかったことから、同チームはこのチップに保存されていたコードを同システムのメモリの別の場所に移すことにした。全てのコードを保存できる区画は見つけることができなかったが、コードをセクションに分割して、それぞれ飛行データシステムの別々の場所に保存することに成功した。
計画を進行させるためには、こうしたコードのセクションが引き続き全体として機能することなどを確認する調整作業が必要だったとNASAは説明する。飛行データシステムのメモリの別の部分で問題のコードの場所を参照している箇所も更新する必要があった。
ボイジャー1号の工学データのパッケージ化に必要なコードを見極めた技術者は、同システムのメモリの新しい場所を指し示すコードを4月18日に送信。この信号がボイジャー1号に届くまでに約22.5時間、地球に反応が戻ってくるまでにさらに22.5時間を要した。
20日、ボイジャー1号から届いた反応は、コードの修正が成功し、再び解読可能なデータを受信できる状態になったことを表していた。
その瞬間、NASAのジェット推進研究所は拍手と歓声に包まれた。
今後も同システムのソフトウェアの問題が起きた部分を別の場所に移す作業を継続し、数週間後には科学データを受信できる見通し。
「ボイジャーにこれから何が起きるかは分からない。それでも飛行を続けて私たちを驚かせ続けている」「数多くの異常が発生して次第に困難になっている。それでもこれまでのところ、幸運にも復旧できた。ミッションは続く。若いエンジニアがボイジャーチームに加わってその知識を生かし、ミッションを継続させている」。ボイジャーのプロジェクトマネジャー、スザンヌ・ドッド氏はそうコメントしている。
Pythonは全くわからないのですべてを生成AIに丸投げすることにした。頼むぜ、Claude3
んで、出力されたコードをJupyter Notebook上にコピペして実行。
すげぇ・・・ 動いた。テキストファイルに増田の各エントリのURLがモリモリと列挙されていく。
行数なんて気にするな
お前の1000000超倍優秀なAnders Hejlsbergもこういうコード書くぞ
51267 ./compiler/checker.ts
28578 ./lib/dom.generated.d.ts
11517 ./compiler/utilities.ts
10747 ./compiler/parser.ts
10274 ./compiler/types.ts
9413 ./lib/webworker.generated.d.ts
7522 ./compiler/factory/nodeFactory.ts
6242 ./compiler/emitter.ts
5955 ./services/completions.ts
5418 ./compiler/program.ts
5147 ./harness/fourslashImpl.ts
5065 ./compiler/transformers/es2015.ts
4931 ./server/editorServices.ts
4337 ./services/utilities.ts
4148 ./compiler/commandLineParser.ts
3971 ./compiler/binder.ts
3899 ./compiler/scanner.ts
3832 ./server/session.ts
3389 ./compiler/moduleNameResolver.ts
3381 ./services/services.ts
3363 ./compiler/transformers/classFields.ts
3284 ./compiler/transformers/generators.ts
3161 ./server/protocol.ts
3114 ./server/project.ts
2799 ./services/findAllReferences.ts
2741 ./compiler/transformers/ts.ts
2628 ./compiler/utilitiesPublic.ts
2579 ./compiler/tsbuildPublic.ts
2533 ./compiler/transformers/esDecorators.ts
2442 ./compiler/transformers/module/module.ts
2240 ./services/refactors/extractSymbol.ts
2049 ./services/codefixes/importFixes.ts
2047 ./compiler/transformers/module/system.ts
2022 ./compiler/sys.ts
1968 ./compiler/transformers/declarations.ts
1941 ./harness/fourslashInterfaceImpl.ts
1917 ./services/types.ts
1866 ./services/textChanges.ts
1807 ./compiler/visitorPublic.ts
1785 ./compiler/factory/utilities.ts
1719 ./compiler/resolutionCache.ts
1655 ./harness/vfsUtil.ts
コロナワクチンの被害救済金が 4500万円からその1/6の780万円に減額されることになった。
これに対して批判があるようである。 確かに、減額する根拠が不明であることは間違いない。
しかしおれは、ワクチンの被害救済金はそもそも必要ないと思っている。 それどころか、ワクチン後遺症の治療は自費で行うべきだと思っているし、 ワクチンで免ファされた人間が癌になった場合なども当然自費で治療すべきだと思っている。 なぜならば、ワクチン接種は完全に自己責任だからである。 ワクチンと自殺は、本質的にそう変わりないのだ。 今、国民の8割が自殺しました。 ただ、それだけの話である。
世の中にはおかしなことを言う人がいて、 政府はワクチンの毒性を知っていたのだから 国民を騙したということになる、 だから責任をとれというのだが、 これも間違っている。 なぜならば、 ここにれっきとした反例が存在するからである。 おれがワクチンを打たなかったのは偶然ではない。 明確な理論と意志を持ってワクチンを拒絶したことは、 このブログを読んできた人ならばわかるだろう。 だから、 明確な理論と意志を持ってワクチンを拒絶することは可能だったわけであり、 騙されたというのはただの他責思考でしかない。
では、中学生や高校生はどうだろうか。 彼らは親や学校に騙されてワクチンを強制されたという人がいる。 しかしこの意見にも同意しない。 なぜならば、 中学生にもなれば自分の頭で調査してワクチンを拒絶することは可能だからだ。 おれが麻布中学の一年生の時であれば、余裕でワクチンの毒性を看破していたと思う。 そのくらいの思考力を持たぬ人間は生きていても無駄だからワクチンして死んだ方がいい。
というわけで、 真にかわいそうだと思うのは小学生やそれ以下の子供たちだけということになる。 彼らについては、親が打つといえばそれを拒否する術はなかっただろう。 結果として、日本では小学生以下の子供に対しても20%は2回まで打ち、 10%は3回まで打ってしまった。 境界知能人間の割合がちょうど14%程度と言われるが、 この数値と近いのは何かの偶然だろうか、あるいは必然だろうか。
知り合いに高専卒の低学歴がいるが、 この男について本当に最悪だと思っていることは、 3人の子供に対してコロナワクチンを打たせたことである。 しかもやっつけ仕事のような感じで、何の疑いもせずに作業的に打たせていた。 そういった精神性が高専野郎の本質であり、それが コードにも表れているのだ。 とにかく言われたことを黙ってやる、それが高専野郎の生き方である。 そうして今後もどこかで、ゴミのようなコードを書いて荒らして回るのだろうか。 彼自身3回は打ってるから、早くファされてくれることを願うばかりである。
このAI説明が正しいならデバッガーが不要と言ってる、って話はかなり違うよな。
ここで書かれてるレベルのことは事前の取り決め等で発生を未然に防げることでしかないので、つまりブルシット・ジョブの人が言いたいのは
発生が十分に予想される問題に対して対策可能であるにも関わらず何の対策もしないことによって不要な仕事が発生している、という話でしかなくデバッガーが不要という話では全くないよな。
スパゲッティコード: 構造が複雑で理解しにくいコードは、バグの発見や修正が困難となり、多くの時間を費やすことになります。
コメントアウトされたセクション: 使用されなくなったコードが適切に削除されずに残っている場合、コード全体が読み解きにくくなり、メンテナンス性が低下します。
一貫性のないコーディングスタイル: チーム内でコーディング規約が統一されていない場合、コードの可読性と保守性が著しく低下します。
人類学者であるデヴィッド・グレーバー氏は、現代社会において多くの仕事が無意味であり、社会にとって価値を生み出していないと主張しています。2018年に出版された著書『ブルシット・ジョブ:クソどうでもいい仕事の理論』の中で、彼はこのような「ブルシット・ジョブ」の存在について論じています。
グレーバー氏は、以下の特徴を持つ仕事が「ブルシット・ジョブ」であると提案しています。
企業法務、テレマーケティング、広報、一部の管理職などが、「ブルシット・ジョブ」に該当する可能性があります。これらの職業は、必ずしも社会に貢献していないと断言することはできませんが、その価値が明確に見えにくい場合が多いと言えます。
粗雑なコードを修正するプログラマーは、「尻拭い」のカテゴリーに分類される可能性があり、以下のような問題に直面しがちです。
このような状況下でプログラマーは、本来創造的な活動であるはずの新しい価値を生み出す作業ではなく、過去の過ちの修正に追われることになります。これは、ソフトウェア開発プロセス全体に大きな問題があることを示唆しています。