タグ

programmingに関するhotmilkcocoaのブックマーク (11)

  • きれいなコードを書けという話について - Software Transactional Memo

    前回のブログから90日以上経ってしまったので広告が載ってしまったから短文でもアウトプットしておく。 プログラマとして仕事をしているとコードと向き合っている時間の9割以上は既存のコードを読んでいる、だから読みやすさは重要である、という言説は耳にタコができるほど誰もが言っている。 仕事で書かれるコードが誰のレビューも通ること無くマージされている現場は凄惨だが、自分より明らかに経験を積んだ人たちが何度もレビューを重ねたコードが読みやすいかというとそうとは限らない。良いコードが守るべきルールをすべて守っていても不可解なコードはあるし、どんなに読みやすいコードでも数千行の規模になってくるとやはり脳内からこぼれて一度に覚えておける範囲からはみ出る。 変数名や関数名をわかりやすくするとか不必要な技巧を凝らさないとかわかりやすい設計にするとか主観的な事を偉そうに語るは山ほどあり、それらのを崇める事は悪

    きれいなコードを書けという話について - Software Transactional Memo
  • コード品質はやはりビジネスに影響を与える - mtx2s’s blog

    私たちソフトウェアエンジニアは、コード品質についてしばしば論ずるけれども、ではコード品質の良し悪しがどれほどビジネスに影響するのかと問われると、回答に窮する。只々、「コード品質が悪いと変更により多くの時間がかかります」だとか、「欠陥の修正に追われて開発時間が奪われます」だとか、個人の経験やエンジニア的一般論に頼った定性的な説明に終始するしかない。ソフトウェアを繰り返し変更する頻度が高いほど、コード品質が開発時間に影響を与えるのは確かにそのとおりだと思えるが、はたしてそれは、どれほどのインパクトなのだろうか。 2022年の研究論文 "Code Red: The Business Impact of Code Quality – A Quantitative Study of 39 Proprietary Production Codebases" では、コード品質がビジネスに与えるインパクト

    コード品質はやはりビジネスに影響を与える - mtx2s’s blog
  • マイクロソフトの調査にみるコードのオーナーシップと品質の関係 - mtx2s’s blog

    ひとつのソフトウェアコンポーネントが多くの開発者によって変更されると、品質に悪い影響を与えると経験的に感じている。設計に一貫性が失われることや、知識の浅い状態で変更することによるバグ混入の可能性が高まるからだ。 2011年9月に公開されたマイクロソフト社の調査結果、"Don’t Touch My Code! Examining the Effects of Ownership on Software Quality" は、この「コードのオーナーシップはソフトウェアの品質を左右する」という経験則を裏付けるものだった。全体のコミット数のうち5%未満の貢献にとどまる開発者が多いコンポーネントは、リリース前後における故障が増加するというものだ。 稿では、このマイクロソフトによる調査結果を紹介し、それを踏まえた上で、ソフトウェアプロダクトの品質悪化を抑えるための組織やプロセス、アーキテクチャについ

    マイクロソフトの調査にみるコードのオーナーシップと品質の関係 - mtx2s’s blog
  • カミナシでの技術的負債返済プロジェクトとその決断 / Beyond tech debts at Kaminashi

    Talked at 「スタートアップと技術的負債」 #SELECKLIVE https://yumemi.connpass.com/event/255925/

    カミナシでの技術的負債返済プロジェクトとその決断 / Beyond tech debts at Kaminashi
  • あいまいを避けて勘違いの起きない命名をするための体系的分類(を目指して) ―― 英文法による一般化と明確化 - Qiita

    はじめに:この記事を書いた動機 これらの素晴らしい先行記事を見て、「言語学を用いれば、共通点を見つけ出して一般化・大項目化したり、取り違えやすいエッジケースを明確化できるんじゃないか?」と思ったことが、この記事を書き始めたきっかけになります。 1章は3つの主要なパターンとその詳細・例外、2章はそれらに関する文法的な解説になっています。 構造化・体系化が必要な理由 太郎くんと花子さんが英作文の問題を解いています。 次の日語を英文に訳せ。 (1) 彼女は楽しい人だ。彼女といると退屈することがない。彼女はいつも新しいことに挑戦して…… 太郎くん(『楽しい』って英語で何やったっけ……) 狩井先生@ 1年6月「exciting は楽しいって意味やで~」 ~~ 月日が流れる ~~ 柱鈴先生@ 2年4月「excited は楽しいって意味やで~」 太郎くん(……って教わったけど、exciting か e

    あいまいを避けて勘違いの起きない命名をするための体系的分類(を目指して) ―― 英文法による一般化と明確化 - Qiita
  • 「1Byteが8bitに決まったワケ」についての長い話 まずは「バベッジの階差機関」から

    いつものようにヘロヘロと仕事をしていると、突如担当編集の松尾氏からMessengerで「これに対するちゃんとした回答を書けるのは大原さんだなということで、また歴史物をお願いしたく」という依頼が飛び込んできた。 いやちゃんとした回答も何も、上のTreeで出題されたSEライダー氏が正解を出されているわけですが、歴史的経緯というか、ここに至るまでの話というのが長い訳で、その辺りを少し説明してみたいと思う。 ちなみに出題に少しだけ違和感がある(なぜ10bitがキリがいいと思うのか?)のは、筆者もこっち側の人間だからかもしれない。 回答の前に、その根底にある2進数採用の経緯 そもそも非コンピュータ業界の方からすれば、2進数がベースという辺りから違和感を覚えるのではないかと思う。実際、世界最初の計算機(≠電子計算機)とされる「バベッジの階差機関」(写真1)にしても、世界最初の電子計算機(※1)であるE

    「1Byteが8bitに決まったワケ」についての長い話 まずは「バベッジの階差機関」から
  • コードのコメント、何をどう書けばよいのか

    開発者向けQ&Aサイト「Stack Overflow」は2021年12月23日(米国時間)、コードコメントを書くためのベストプラクティスを紹介した。これはミルズ大学のコンピュータサイエンスの教授であるエレン・スパータス氏による寄稿記事だ。 この記事は2021年7月5日に掲載されたもので、同ブログで2021年に人気を博した記事のトップ10の1つとして再掲載された。 スパータス氏は、「コメントは、出来の悪いコードの言い訳や修正として書くものではなく、(コードが表すものと)異なるタイプの情報を提供することで、良いコードを補完するものだ」との見解を示した。その理由としてシステムアーキテクトのピーター・ヴォーゲル氏が2013年に投稿したコメントに関する3つの事実を挙げた。 (1)コメントを書いて、維持するには費用がかかる (2)コンパイラはコメントを無視するため、コメントの内容が正しいかどうか機械的

    コードのコメント、何をどう書けばよいのか
  • 状態、結合、複雑性、コード量の順に最適化する - valid,invalid

    There’s No Such Thing as Clean CodeのHacker Newsコメント経由でコードやシステム設計・最適化についての良いコメントを見つけた。どうやらHacker Newsで何度も引用されているらしいが日語で言及された記事が見つからなかったので取り上げてみる。 コメントは2016年のSandi MetzのThe Wrong Abstractionに関するもので、発言者のcurun1rいわく「私は設計の優先順位をこの順序で学習することで、優れた開発者になれた」。*1 4つの基準と優先順位のガイドライン 状態 > 結合 > 複雑性 > コード量 私は状態 (state)、結合 (coupling)、複雑性 (complexity)、コード量 (code) の順に削減することでコードを最適化する。 コードがよりステートレスになるなら、結合を増やすこともいとわない 結

    状態、結合、複雑性、コード量の順に最適化する - valid,invalid
  • API越しでタイムスタンプをやりとりする時のフォーマットをどうするべきか - その手の平は尻もつかめるさ

    APIのリクエストにせよレスポンスにせよ、タイムスタンプを利用するというのはよくある話です。 この時、そのタイムスタンプのフォーマットをどうするのが良いのかという話題です。IDLを使って縛るというというのは良い考えだと思いますが、IDLを使うにせよフォーマットについては決めなくてはならないので。 1. 文字列を使う これあんま良くないと思うんですよね……というのも、とあるAPIを触っている時に「タイムスタンプはRFC3339です」というフィールドがあったんですけれどRFC3339ではないフォーマットで返却されたり受け入れられたりしたのであまり信用ができない…… まあフォーマットが不正というのは極端な例かもしれないですが、仮にフォーマットが不正だと多くの場合 strptime() や time.Parse() なんかの時刻文字列のparserが正しく動かず (良いケースだとエラーが上がる、悪

    API越しでタイムスタンプをやりとりする時のフォーマットをどうするべきか - その手の平は尻もつかめるさ
  • https://twitter.com/gobaSec/status/1477284596551421953

    https://twitter.com/gobaSec/status/1477284596551421953
  • コードのコメントはシンタックスじゃなくセマンティクスを書こう - PG日誌

    コードの構造とか文法を一生懸命説明するシンタックスコメント職人が世の中に結構いるみたいです。 例えばこんなの // ログを出力する Log.WriteLine("ERROR", "Failed to hogehoge function."); Log.WriteLine("ERROR", ex.ToString()); コード見ればわかるような、コードのシンタックスの説明を一生懸、何千何万と同じ内容を書いてるんですが、ログを出力しようとするたびに"//ログを出力する"…ってそんなの見れば分かりますよね。 しかも恐ろしい事に何千回も同じこと書いてるんですよ。完全一致検索で数千件引っかかるのでそれよりもっと大量にあることは確実です。ちなみに規約でコメントを強制しているわけではありません。 誰か、どこかに、そのクソコメントを書いていた時間をの工数を請求したと思うと胸が熱くなりますね。 以下、続き

  • 1