@kazuo_reve 新人の方によく展開している有益な情報
https://qiita.com/kazuo_reve/items/d1a3f0ee48e24bba38f1
で参照・引用しているURLを一つづつ確認してみよう。
確認する視点は3つ。
-
書いた時点と今とで事情が変わっていないか。
-
書き手と、読み手で見えかたが逆の事象はないか。
-
真偽の論理的な書きぶりの事項は、統計的もしくは確率的に扱った方がよくないか。
30 清水吉男, ソフトウェア開発201の鉄則』の解説 原理63:設計の原理=代替案を評価せよ
1. 年
1998 年 11 月
2. 場合
清水吉男さんとは、作ってきたソフトウェアが全く異なり、ここの考え方は真逆なことがほとんどです。
社会的な事象は、逆も真だということを知っていれば、初期条件、制約条件の違いについて意見交換すればよい。
逆も真:社会人が最初に確かめるとよいこと。
清水吉男 設計の原理
建築のように不可欠な構造計算もなければ,
ソフトウェアに不可欠な計算とは、
-
時間。例えばコンパイル時間。インタプリタの場合は計算が止まるかどうか。コンパイラの場合は実行時間。
コンパイル時間を予測しておかないと。何もできない。コンパイルが終わらなければ、作業は先に進まない。
ソフトウェアに不可欠な計算がいくつかある。それを計算だと意識しない人がいるだけ。
あるFORTRANの計算精度を評価するプログラムをつくっtら、結果が出るまで3年かかることがわかった。
現在の2GHz, 64bit CPU, メモリ 32GBあれば、数日で終わるはず。 -
空間
計算機のメモリを使い切って、ディスクへの書き込みが増えれば、計算時間が遅くなる。
頻繁にあれば、計算時間ではなく、読み書き時間が支配的になる。有効な時間ないに終わらない可能性がある。
事前に、空間を減らす設計をしていないと地獄を見る。 -
入力に対応した出力
どの入力があったら、どの出力がでるべきか、別の方式で計算する。
その結果と、対象のプログラムの計算結果が同じであれば、正常系の試験は完了。
2.1 設計の質
建築の世界では、設計と施工が別会社になっていることが殆どです。同じ会社であっても、設計者が直接施工することは稀です。それで作業が出来るのは、ちゃんとした設計書が存在しているからです。
ここでも認識が違います。
建築の世界で、うまく行っている場合は、現場監督が設計思想を理解しているときだけだということがないでしょうか。
こういう設計思想だから、ここが合わなくても、こういう合わせ方でいいんだという判断するのでしょうか。
地面を掘ったら、こんなことがあった、あんなことがあったって、現場にいればわかることは、
現場監督が設計者に連絡して相談することもあるかもしれません
2.2 基本構造
設計という行為は、その初めのところでソフトウェアの基本的構造を決める行為を含んでいます。これは手法やツールによっては、「分析」というステップの終盤で扱っています。
分析は設計なくしてはできません。設計と分析は対になって行うものです。
メインフレームでのように、基本構造を前提として行う設計と、CPUの洗濯そのものも設計のうちで行う場合では、分析の白割が異なります。設計なしで分析することは不可能です。
2.3 品質指標
たとえば、変更容易性を優先するか、パフォーマンスを優先するかで、機能モジュールの構成が変わってくることがあります。
AUTOSARでよく話題になる事項です。安全性を含む快適さを目標とした設計と、燃費と本体価格逓減を目標とした設計では、昨日モジュールの構成が違うだけでなく、自動生成アルゴリズムも変えた方がいいのではないかちおう知見を耳にすることがあります。
3.統計
3.1 品質と統計・確率
ソフトウェアは決定論的だという説があります。
電源と通信が安定した研究室の中での空想なのでしょう。
現実世界では、ありとあらゆる電源状況で、ありとあらゆる通信現象を扱う、統計と確率でしかソフトウェアは設計できないことがわかるかもしれません。
それは、穴を掘ってからしか、建て方を最終決定できない建築の世界と同じだと考えるとよいでしょう。
一見すると違う世界のように見えることも、最先端もしくは最深淵では同じ構造があるかもしれません。
3.2 社会調査
社会的な事象では、統計による検証はできないと仮定して考えるとよい。
統計は嘘をつくための道具かもしれないと。
統計の嘘。仮説(127)
社会事象は検証できないかも。仮説(204)
4 まとめに代えて
新人プログラマ応援 - みんなで新人を育てよう!
今、Qiitaでは、「データに関する記事を書こう!」という行事をやっている。
この文章は、テーマ2『データに関する記事を書こう!』参加記事でもあります。
いくつかの事項は、データを取ってから追記できればいいかもしれない。
あるいは、お手持ちのデータがありましたらコメントいただけると幸いです。
自分の頭で考えることが大事なのではない。
何か行動すれば、必然的に、自分の頭で考えなくてはならないところに追い込まれる。
自分の頭で考えるようになるには
「自分の頭で考える」ということ。
行動して、測定すればいい。
ぼくの先生「人がやらないことをやれ」プログラマになるまで。仮説(37)
小学校の絵の先生には、色を置いてみるという試行錯誤を教わった。
中学校の技術の先生には、人がやらないことをやれと教わった。
考え方など教わらなくてもいいのだ。
行動すれば、その責任は自分で考えて、よりよくするのが試行錯誤で、人がやらないことをやった人が考えることかも。
DoCAP 芸術でも技術でも運動でも
4.1 参考文献
@kojimadev 1年以上かけて生産性倍増+成長し続けるチームになった施策を全部公開
@torifukukaiou【毎日自動更新】新人プログラマ応援 - みんなで新人を育てよう!(2022年04月) LGTMランキング!
@torifukukaiou 【毎日自動更新】データに関する記事を書こう! LGTMランキング!
@kazuo_reve 「新人の方によく展開している有益な情報」の中で大学時代に得ておけばよかった情報
@kazuo_reve 私が集めた有益な情報・知識のまとめ
@kazuo_reve 私にとって有効だった学び方5選
@kazuo_reve 自分のQiitaの記事を分析してみた
@kazuo_reve 私が効果を確認した「小川メソッド」
@e99h2121 育児していたからこそエンジニアのお仕事に役立ったこと10選
@e99h2121「女性こそエンジニアになるべきだ?」デブサミウーマン登壇記録
@e99h2121 新人さんにすすめる有益なツール達 2022春
@e99h2121 新人さんにすすめる有益な技術書達 2022春
@ohakutsu 新卒1年目のエンジニアがQiitaの速度改善をした話
@ohakutsu 新卒2年目から見た達人プログラマーの振る舞い
4.2 自己参照
ソースコードを読むための技術: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(1)
スペックアウト手法: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(2)
変更の影響範囲を特定: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(3)
質問は恥ではないし役に立つ: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(4)
質問するときのパターン・ランゲージ: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(5)
「できない人」ほど、人に聞けない: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(6)
分からないをすぐ伝える: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(7)
15分ルール: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(8)
検索の仕方: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(9)
エラーメッセージの読み方と対処: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(10)
Google検索のコツ: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(11)
新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(12)
日報、週報、月報、年報: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(13)
新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(14)
分報(分単位報告): 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(15)
分かる: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(16)
わかったつもり: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(17)
開米瑞浩 図解: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(18)
要求仕様: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(19)
SE用語: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(20)
文章の推敲: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(21)
結城浩 数学文章: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(22)
結城浩 推敲: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(23)
あいまい表現: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(24)
やまとことば: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(25)
鍵語による見直し: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(26)
開米瑞浩 MECEとロジックツリー: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(27)
https://qiita.com/kaizen_nagoya/items/bb664d89e068c3f1bc77
佐藤航陽 論理: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(29)
: 新人プログラマ応援 @kazuo_reve 新人の方によく展開している有益な情報(30)
「@kazuo_reve 新人の方によく展開している有益な情報」はじめ記事を参照して頂いた時にしていること。
https://qiita.com/kaizen_nagoya/items/0e4e92f45c158ef81423
@kazuo_reve「「新人の方によく展開している有益な情報」の中で大学時代に得ておけばよかった情報」に付け加える3つのこと。
https://qiita.com/kaizen_nagoya/items/36bc634d5eb092c5b759
プログラマにも読んでほしい「QC検定にも役立つ!QCべからず集」
https://qiita.com/kaizen_nagoya/items/d8ada7b7fceafe2e5f0e
図を使って分析すればこんなに簡単。安全(11)
https://qiita.com/kaizen_nagoya/items/6347eb55b2812d745549
5月病にならないで
https://qiita.com/kaizen_nagoya/items/6b9b1f00937cb8b106c9
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.