【IT】開発スピードを向上させる、読みやすいコードの書き方
■ このスレッドは過去ログ倉庫に格納されています
良いコードとチーム開発
では、自分以外がコードを理解できているのはどんな状態でしょうか。単に「読めればいい」というわけではありません。
「コードを理解する」というのは、変更を加えたりバグを見つけたりできるという意味だ。他のコードと連携する方法も理解しておかなければいけない。
『リーダブルコード』p.3より
チーム開発では他人が書いたコードを改修することも多く、ソフトウェアは全体が連携して動作します。ですので、手を加えられる状態であることが重要と言えるでしょう。
事業の継続性に関わる
これは私の考えですが、コードの質と事業の継続性には深い関係があると思います。
開発が進むにつれてコード量は増大してきます。うまくコントロールしないと扱いづらくなり、プロダクトの開発スピードが低下します。ちょっとした機能追加に多くの時間がかかってしまい、実装する頃には競合サービスに追い抜かれてしまうかもしれません。
本書でも以下のように述べられています。
プロジェクトは巨大になって、すべてを把握できる人は誰もいなくなる。新しい機能を追加するのが苦痛になってくる。コードを扱うのが厄介になって楽しくなくなる。
(中略)
プロジェクトが成長しても、コードをできるだけ小さく軽量に維持するしかない。
『リーダブルコード』p.171より
事業を継続し、プロダクトの成長を持続させるためには、本書で言われているように、できるだけ小さく軽量な、良いコードが必要なのではないでしょうか。
ここからは本の中で取り上げられている理解しやすいコードを書くためのポイントと実際の例をいくつか紹介します。代表的なテクニックを見ていきましょう。
変数と理解しやすさ
まずは変数を取り上げます。すぐに取り組める内容なので、初めにやってみるといいでしょう。
変数名に具体的な情報を込める
変数名にどんな英単語を使うべきか悩むケースは少なくないはず。本書では使う単語を工夫し、分かりやすい名称にするコツを紹介しています。
例えば、「get」はあまり明確な単語ではない。
def GetPage(url);
「get」という単語からは何も伝わってこない。このメソッドはページをどこから取ってくるのだろう? ローカルキャッシュから? データベースから? インターネットから? インターネットから取ってくるのであれば、FetchPage()やDownloadPage()のほうが明確だ。
『リーダブルコード』p.10-11より
意味がはっきり通る単語を変数名に使うだけで、コードを読む人へのメッセージになるのです。
https://employment.en-japan.com/engineerhub/entry/2017/09/26/110000 1つの関数、メソッド内を馬鹿みたいに200行以上書く奴から逆に金を取りたいわ この記事、かんじんのコード部分が途中で切れてしまって読めない。
適当に引用するとこうなる悪い例だな。 >>1
英語圏の人間からしたら
Getは超曖昧で便利な言葉だからだろ
規約は案外どうでも良くて、
端的に処理の内容や引数・戻値についてコメント入れておくほうが、
後から見て解りやすい 現実には上司って肩書の人間が
これからこの機能のコードを書けリリースは今日中ですとかアホなこと言うわけよ
保守性高い綺麗なコード書きたいがさすがに無理
>>3
コードコンプリートと違ってさくっと読めるからこの連休使って嫁w ,;:⌒:;,
8(・ω・)8 1つもモジュールは1画面に収まる行数にしなさい 人は記憶型と思考型に大別できる
チームでやる場合なら幹の部分だけしっかり抑えておけばいいと思うよ
枝葉の部分はお前ら勝手にやれで十分
どんなに長大なプログラムでも枝葉は1つの関数でしかない
幹は、その関数に何を与えて何をやらせて何が返ってくるかを抑えておくだけで十分
使えなくなったら枝葉があったらそこだけごっそり変えれば済む だから強い型付けとアクセス修飾子があるのにさ
なんでも var や dm で宣言すりゃ良いってもんじゃないんだよ インタフェースとテストコードさえ
きちんとしていれば良い。
中身読まなきゃいけないのは
それが無いレガシーコードだけ rubyはまず言語仕様の方向性とその意思決定方法が合っているかどうかを
テストした方が良いと思うの。 >>11
やな。今時の言語はアプリを書く限りにおいてはあまりコメント入らないと思う。 俺は変数名の頭に型名を入れる。
変数名が長ったらしくなっても
それが何を意味するか分かるから getpageか批判承知で言えば英単語だから僅かだけど
英語圏の人より認識に遅れが出るよね。一つ一つは少しだけど
大量にあるときは英語が母国語の人にアドバンテージあるよね
クソコードを書くプログラマーは
自分のコードの正当性すら説明できない
論破されると不貞腐れる奴が多い >>18
1関数2000くらいだな
それがたくさんあるポンコツシステムのリファクタさせられた
そんな糞が役職上で給料も上
マジで殺したいと思ったわ >>16
型が変わったら逆にミスリードを誘うゴミ
動的型付けのスクリプトはやってるから今は嫌われるスタイル
>>19
中の実装を呼び出し側に意識させる必要が有るかだな
ダウンロードだと呼び出し側は何かするからDownloadがいいけど
基本はゲットでいいと思ってる
コード短いと単体テストも簡単だから短くあるべき
保守要因がわかるように単純化して読みにくいコードは書かない >>18
530000。
上から順に
変数宣言領域
データ定義領域
データの切り出し領域
最後にロジック領域と、
大きく4つの領域がmainの中に詰まってた
なお各領域内は完全に一枚岩で混沌の極み 余談だが、変数は26個のみの使い回しで
a〜gはuint、h〜nはint、o〜zはvoid*だった 日本の現場だと、メソッド名に英語ではなく日本語を使うよう指導されるから無駄 >>20
それわかる〜
何でこんなヤツが今まで生き残って来れたのか不思議に思うことがよくあった。 >>23
桁が違うな。俺も似たようなの見たことあるが、せいぜい数千行だった
あとアセンブラをベタ移植したCコードも見たことある。変数がレジスタ名でgoto文多用だったけど、きちんと機能しててスゲーと思った >>25
そんな糞現場は速攻やめるわ。今の時代、技術力があれば年齢性別なく仕事を
選べるし。 フローチャートの発展形のようなものを書いてからプログラムを書き下す事で
同じ仕事をする場合は絶対に一通りにしか書けない言語だかやり方が有ると
昔聞いた事が有る
本当にそんなすごい事出来るんだろうか? >>5
そんなコメントを読まねばならない名前をつけるな >>8
人を記憶型と指向型に大別する人を
コンピュータープログラミングの話題で見るのはちょっと意外。
政治とか国際関係のニュースでの発言が多いから
そっちの人かと思ってたわ。 >>1
Knuth先生は数十年前にはるか先に到達している
英語だから知らないだけ
なおかつそれでも今でもコーディングが駄目だという事は問題はほかにある >>1
最近の作法は知らんけど
GetPage(url) の GetPage を 変数名 と呼ぶようになったのか? 天才のコードは凡人には難解っつーのはあるな
簡潔すぎて、なにがなにやら getがどうとか英語のニュアンスがとかどうでもいいし、
だいたいマイクロソフトの標準ライブラリー自体get何々って関数たくさん作ってるし、
この記事の内容書いた人ちょっとおかしいんだろう。
あと昔のケチって詰めた書き方してるやつは読みにくい。 たまに
ジェネレータの出力コードに文句言ってる新人が居るので笑える
1万行のif文手作業で書いてると思うほうがオカシイ。 >>25
むしろ英語使えって言うけどな。
日本語は付加価値が無い。 >>1
> インターネットから取ってくるのであれば、FetchPage()やDownloadPage()のほうが明確だ。
インターネットもしくはDBからページを取得するように仕様が変わったら
わざわざ関数名変えないといけないけど。 >>40
ペラペラになる必要はないけど、今時、英文ドキュメントすら読めないのなら
やめてもらった方がみんなのためよ。 10年位前までは英語できない奴らが結構いたし、
英語読むことが必須の案件ではわざわざ「英語ドキュメント読む必要があるけど大丈夫か」
みたいな確認があったけど、最近はそういう確認無くて普通に英語ドキュメント読まされるし、
若い奴らはある程度英語できるのは当たり前になってる気がする。 すでに出来上がったコードにあとからあれこれ仕様をすぐに追加しろっていうもんだからアドホックなコードになってワケわからんことになるんだよ。 >>24
i〜nが整数型、残りが実数型というのがお約束。
それがfortranの時代から続く暗黙のルルール。 以前、asahi.comの技術募集の条件欄に
・使用可能な言語: C言語
・習得レベル: 日常会話レベル
と書いてあったのを思い出す様な話だな。 コードコンプリート読んでみようと思うけど高くてな… >>42
逆に昔そんなんだったのが信じられない
よくやっていけたなと >>1
Windows (Internet Explorerのライブラリに含まれる関数)だと、ずいぶん昔から
URLDownloadToCacheFile や URLDownloadToFile というAPIがあってだな。
ttps://msdn.microsoft.com/en-us/library/ms775122(v=vs.85).aspx
ttps://msdn.microsoft.com/us-en/library/ms775123(v=vs.85).aspx
Minimum supported client
(対象クライアントOS) Windows XP(以降)
Minimum supported server
(対象サーバーOS) Windows 2000 Server(以降)
Product(製品) Internet Explorer 3.0(以降)
Windows 10はEdgeが標準だけど、実はInternet Explorerも入ってる。
つまり、URLDownloadToCacheFile や URLDownloadToFile を使えば、XPや2000 Server
以降のWindowsなら動く。 AjaxもIE5.5が最初にやり出したことだし、別に驚くほどのことでもない >>47
こういうこと言うやつに限ってクソコード書くから困る AIがどーたらこーたらって話は大きいが
開発言語についての進化は対して変わらないのが現状。 >>47
DDD系の実装は、今のトレンドだと思うけど。 Objective-Cでは "get〜" は「返り値ではなく、メモリ領域にコピーして戻す」ことを
意味するという指針になっていたはず。 >>53
inetコントロールは、バージョンの影響受けやすいからxpから動くけど注意が必要だわ >>49
ある意味分かってる人の要求だな。本気でプロだと日常会話もC言語になるからな >>52
昔は日本のITはそれなりに技術があった。一億総中流で普及率もあり、ガラパゴスとしてやっていける時代だった。一人当たりGDP世界一の時代。 技術力が低いIT技術者 -> できなすぎて病んで退場
技術力が高いIT技術者 -> できないやつの仕事押し付けられすぎて病んで退場
日本でIT業界に就職するやつって頭おかしい 変数名も1024文字の時代だし
コメント書くぐらいなら
そのコメントを変数名にすればよいわ >>72
変数は良いけど処理はどうするの?
なぜこういう処理で正しいかと言うことを説明したいときにはどうしようもない 変数と変数を処理するのは
コードそのものじゃん
それが正しい事を証明するのはテストコード
それでも足りなきゃwikiのURLでも書いとけばオケ
したがってコメントは無駄 別にコメント書かなくてもいいけどその脳みそ保守に必要だから体ごと置いていってもらおうか >>78
正しいかどうかは判定できるけど、なぜ正しいのかの説明は与えてくれない そもそも正しい方法はひとつじゃない
そこそこに正しいかもしれない方法にすぎないでしょ 処理の隠蔽という意味では
使う側からしたら欲しい値が取れればいいんだから
データの元がフィールドだろうが DB だろうが URL だろうが
全部 get〜 で OK >>87
すでに、オーバーロードして名前を共通にできる言語が主流だからね >>88
フィールド、データベース、URL(ネットワーク) でオーバーロード? >>5
超だせーよw
呼び出し側のコードだけで内容理解できるように命名するのがイケてるんだよ。
わざわざメソッド定義見に行かなきゃならない名称は失敗だと思え! >>87
それもありだが、パフォーマンスを意識したコードを書きたいならやめた方がいい。 >>64
Objective-C での getter は名詞で表現するのが基本ルールだからな 書いてから一ヶ月もすると自分で書いたのに分からなくなるからなあ
ほんとめんどくさいわ >>95
きれいなコードを書く人ほど、汚いコードを読むスキルが磨かれないジレンマ... >>97
そんなん誰でも困惑するわw
よく耐えたなその新人... 日本語でコーディングするプログラミング言語がいいよ。
日本語だからコメントがなくても見通しがいい。 いまさら感あるけど、コード綺麗に書く意識付けにはいいんじゃないか?
既存コードあるところで何でもかんでもこれされると困るのは次の課題だが。
コードコンプリートとかリファクタリング読むとまた感想変わるかもしれんけど。
現場のレベルに合わせてコードかけるようになると波風立たず色々楽になるよ。 派遣先のお爺ちゃんで、何が何でもgoto使いたがる人がいて困った・・・
switchから抜けるのに何でわざわざgoto使うのさ
と言うか、何でそれでコンパイラーは通しちゃうのよ >>52
最近は大卒が当たり前だから最低限は読めるだろう
>>99
なでしこ、ひまわり? 学生時代は書き終わったCのコードを短くしていくのが楽しかったな。
他に、アセンブラ比率を高めて変態的なものを書いてみたり。 >>90
極端とか意味わからん
>>87が言ってることを書いてるだけなんだが w
そもそも論点はそこじゃなくてソースを切り替えるのにオーバーロードとかアホじゃね?
って話 C言語は try ないから goto 使いたがるのわからんでもない。 なるべくどの言語にも共通する構文や機能を使って書いてほしいね。
.eachメソッドを使わずにfor文を使うとかね。 >>35
これの重大性がわからないお前みたいな奴が大量にいるから
腐ったコードが量産されてんだよバカ死ね >>92
パフォーマンス重視ならコンパイラによって静的に解決できなきゃエラーになるでしょ >>102
SIerでコード書いてるプログラマは、最近はほとんど高卒だよ。
大卒は高卒派遣の管理からスタートする。 コードをリーダブルにする必要はない。
むしろリーダブルにすべきなのはデプロイだ。
デプロイさえ、リーダブルなら
なんとかなる。どんな処理があって
どんな動きをするかデプロイでわかれば
ソースは直しうる。 一人に一貫製作させるのが最も効率が良いし、他人が読む必要もない。 最低でも構築手順書。
ちゃんとしてるなら自動デプロイ。
このデプロイに全てのアーティファクトとその依存性が含まれていれば
なんとでもなる。 >>117
インストーラが作成されていればコードは読めるということ? クリントン政権と小沢一郎との関係については、
霍見芳浩さんというニューヨーク市立大学の教授が、
「アメリカ殺しの超発想」という著書の中で
お書きになられています。
歴代の政権が「小沢レバー」を利用していたことや、
金権政治を引き継いだのが小沢一郎であること、
また、新党ブームの黒幕も、小沢一郎だと書いてあります。
創価学会のパナマコネクションで有名な本です。
「アメリカ殺しの超発想」(著・霍見芳浩・ニューヨーク市立大学教授) より以下引用↓
----------------------
防衛利権が
金丸、そして小沢レバーの
アメとされてきたカラクリは簡単だった。
自衛隊の制服組のOBと、小沢氏が牛耳る
日本戦略研究センターをみれば、それはよくわかる。
同センターは、設立当時(1980年)は設立者の金丸が会長となり、
同氏失脚後は小沢が会長をつとめている。
小沢会長の下には、理事長として
永野茂門参議院議員(新生党)がいる。(p.200)
----------------------
「防衛利権は、清和会に乗っ取られた!」
という話を、ネットで見かけるんですが、
これこのとおり。↓
【防衛大臣の年表】
http://56285.blog.jp/archives/50473203.html
2007年に表面化した時も、
小沢さんの腹心で、創価学会員の
東祥三さん (加計学園で登場) だとかは
追求に及び腰だったみたいですね。
そして、島本氏が秘書として18年間仕えた
田村秀昭参議が立ち上げメンバーの一人として99年に作られた
「日本戦略研究フォーラム」という組織があります。
山田洋行事件の頃に民間と政治家や防衛庁(当時)のパイプとして存在した
「日本戦略研究センター」の後継組織ですね。
http://blog.livedoor.jp/kumafight/archives/1025515645.html
島本さんは、小沢さんの元秘書で、
田母神さんと逮捕された人です。
http://56285.blog.jp/archives/50814290.html 「アメリカ殺しの超発想」(著・霍見芳浩・ニューヨーク市立大学教授) より以下引用↓
九四年八月七日、日曜日、一般全国紙がないともいえるアメリカで
準全国紙の役割を果たしている新聞の一つ、ニューヨーク・タイムズ紙の
日曜版の投稿論壇が、私の小沢レバー批判を目立つように掲載してくれた。
この内容は、八月五日付の日本の英字新聞、アサヒ・イブニング・ニューズに
コラムとして載せたものとほぼ同じだった。
また、その一部は日本人向けに七月初め以来、
各メディアをとおしてお知らせしていることとも、
大筋は同じものであった。
その要旨は、「クリントン政権は村山政権に対して、
どう対応したらいいか迷っている。
これは、歴代のアメリカ大統領が、
いかに安易に小沢レバーに頼って、日本を操ってきたかの証である」
ということで、続いて「小沢氏はこれまでのアメリカの対日要求を、
自分の利権マシンとして使ってきた。
このようにアメリカは、
金権によって腐敗した日本の政治のパートナーと
なってしまっているのだった」と批判した。(p.208)
しかし、小沢一郎は、独断で三月十七日の期限を待たずに、
モトローラ社の移動電話でアメリカに全面降伏してしまった。
せっかく、盛り上がり出していたクリントンの対日貿易批判だったが、
日本は小沢氏に裏切られたのだった。(p.134)
→(1)携帯電話機の脅迫セールスと「国賊」小沢一郎
http://www.jca.apc.org/~altmedka/denpa-7-1.html
http://56285.blog.jp/archives/50814290.html 「アメリカ殺しの超発想」(著・霍見芳浩・ニューヨーク市立大学教授) より以下引用↓
村山連立政権の成立によって、
一応民主化二年目の幕開けには欠かせなかった
小沢失脚が達成されたのだった。
小沢氏は海部氏を自民党から脱党させ、
中曽根康弘と渡辺美智雄の両氏を、
自民在籍のまま海部支持に引っ張り出した。
この結果、自民党から腐敗の巨悪二人と、
操り人形業界の一人が実質的に消えて、
自民党内部の大掃除が、また一段と進行した。(p.136)
ところで村山政権の成立に困惑しているのがクリントン政権だが、
これは社会党が政権の中枢に座ったせいではなかった。
自民党も社会党も、とっくの昔から政治イデオロギーはポーズだけのもので、
いわゆる五五年体制は、自社の馴れ合いだったことを承知している。
困ったのはこんどの政変で小沢一郎が失脚し、
八〇年代の自民党の中曽根政権から昨年来の細川、羽田の反自民連合まで、
一貫して小沢氏を通して日本にアメリカの要求を次々と飲ませてきた、
こんなに便利だった小沢レバーが使えなくなったことである。
八〇年代に始まり、歴代の駐日アメリカ大使は小沢氏という闇のチャンネルを使って、
通信、建設を筆頭に、日本市場をアメリカに無条件に譲渡させ、
湾岸戦争で一兆五〇〇〇億円もの金を拠出せしめた。
また、ペルシャ湾の掃海に日本の海上自衛隊を派遣したのに続いて、
PKO部隊の海外派兵を、国連の隠れ蓑を使い、
アメリカの思惑通りに小沢氏はしてのけた。
九四年に入ってからは包括協議での日本の全面譲歩、
そして北朝鮮の軍事や経済制裁に日本を駆り出すために、
アメリカは小沢氏に頼ってきた。(p.137-138)
http://56285.blog.jp/archives/50814290.html しんぶん赤旗で報じられた清水建設の記事
清水建設 コンサル会社と結託
ダム工事資料 事前入手
農水省が調査開始 入札不正の疑い
http://www.jcp.or.jp/akahata/aik4/2005-05-09/01_01_0.html
--------------------------- 
「お宅がとった胆沢ダムは小沢ダムだ。そのことを忘れるな」
大久保被告にこういわれたのは西松建設東北支店長。
「なんだと。急に手のひらを返すのか」と怒鳴りつけられたのは、
清水建設の東北副支店長です。
献金の減額を打診した席でのことでした。
http://www.jcp.or.jp/akahata/aik09/2010-01-30/2010013007_01_0.html
--------------------------- 
同判決は、胆沢ダム建設工事にからむ水谷建設の1億円ウラ献金や 
西松建設のダミー(隠れみの)政治団体による献金も認定しましたが、
小沢被告をめぐっては、これまでも、清水建設のヤミ献金リストの
Aランク(盆暮れに各500万円)になっていたこと、
鹿島からのヤミ献金500万円などが指摘されてきました。
http://www.jcp.or.jp/akahata/aik11/2011-10-07/2011100715_01_1.html
--------------------------- 
東京都築地市場(中央区)の移転予定地、東京ガス工場跡地(江東区豊洲)の
土壌汚染対策工事を受注した建設会社15社中、13社に
都OBが天下りしていたことが26日、本紙の取材で明らかになりました。
http://www.jcp.or.jp/akahata/aik11/2012-02-27/2012022715_01_1.html
--------------------------- 
東京都OB33人天下り
失敗した土地信託のビル管理会社に
社長に副知事・出納長・局長… 幹部がズラリ
http://www.jcp.or.jp/akahata/aik11/2012-03-19/2012031913_01_1.html
--------------------------- 
臨海副都心 埋め立て工事
8割が落札率97%超
99%台の契約も
http://www.jcp.or.jp/akahata/aik4/2006-02-25/2006022515_01_0.html 
---------------------------
こないだの「横領」と「自殺」についてはこちら。↓
http://56285.blog.jp/archives/50714743.html
小沢一郎と仲のいい関西創価のドンが死去、後任は池田の長男。(三田会つながり)
http://www.news-postseven.com/archives/20150325_311422.html
検察と共に戦った「小沢無罪!」の皆さんと三色旗。
http://ozawa-risen.cocolog-nifty.com/photos/uncategorized/2011/09/23/allinnocent.jpg 「公明党、創価学会よどこへ行く」( 週刊東洋経済 eビジネス新書 ) 
与党協議に関わった横山氏は 
「自民党の北海道連の意見が 
まとまっていなかったこともあるが、 
札幌延伸をリードしたのは明らかに公明党。 
函館に新幹線を上陸させれば、後はなんとかなると、 
『青函(青森と函館)同時開業』を公明党が言い出したときが 
(事態が動き出した)転換点だった。」と振り返る。 
http://56285.blog.jp/archives/49650766.html 
----------------- 
国土交通省で「天下り」が完全復活した。 
その中心的人物が、石井啓一国交相だという。 
要するに「バリバリの元国交省キャリア」が、 
かつて自分が勤務していた省で大臣となり、 
天下りを復活させたことになる。 
http://www.yellow-journal.jp/politics/yj-00000295/ 
----------------- 
当時、内田氏は 
都議会自民党幹事長として売り出し中だったが、 
今ほどの権力はなく、公共工事の仕切り役は、 
都議会公明党のドン・藤井富雄氏だった。 
藤井氏は、05年に政界を引退し 
仕切り役、調整役の座を内田氏に禅譲。 
(中略) 
老朽化した築地市場の移転は、 
石原氏の前任の 
青島幸男知事の時代に持ち上がったが、 
その構想を推進したのは、 
東京都港湾局長時代の石川雅已・現千代田区長で、 
臨海副都心開発部長として石川氏を支えたのは、 
前川あきお・現練馬区長だった。 
山田氏は、後述するように 
両氏をOBとなっても物心ともに支えた。 
つまり豊洲移転は、 
石原都政の前に都の官僚が 
議会や市場関係者に対する根回しを行い、 
推進してきたのだ。 
http://gendai.ismedia.jp/articles/-/50989 
----------------- 
公共事業絡みで口利き 
公明・藤井都議が都幹部などに 
コンサルタント会社を紹介 長男が「顧問料」もらう 
http://www.jcp.or.jp/akahata/aik2/2004-01-08/01_02.html 
-----------------  
創価大学生のおもな就職先 
http://56285.blog.jp/archives/49851484.html コーディングなんてあと10年もしたらAIがやってるだろ
人間のする仕事じゃねーよw >>99
コメントは処理の抽象的な概念を書くものであって
処理内容を逐一説明するものじゃないぞ
// i と j を足したものを k に入れる
k = i + j;
みたいなコメントだらけのコードがわかりやすいか? >>102
たとえば、なでしこ風に消費税込価格を計算するプログラムを書くと:
「税抜価格と消費税率から税込価格を計算します」を表示。
「税抜価格はいくらですか」と尋ねる。
税抜価格はそれ。
「消費税率は何%ですか」と尋ねる。
消費税率はそれ。
税込価格は(消費税率 / 100 + 1) * 税抜価格
「税込価格は{税込価格}円です」を表示。 >>109
今時 filter、map、fold、each はどの言語にも揃ってるぞ
多少名前の表記揺れあったり、方言もあるが、それはforだって同じだろ なでしこがもう少し賢くなると、
プログラミング言語をまったく習得したことがない人でも
なでしこのソースコードが何をしているのか
おおざっぱに読解できるようになるのではないか? >>106
推測可能な名前くらい付けられるだろタコ >>128
それ単純な例だから簡単に思えるだけで、実際英語ベースでも難しくないだろうが
実運用ベースの案件だと、そんなに単純なことにはならんので確実にコメントは必要になる >>115
すげぇバカだな
メモリとDBと通信が同じ速さわけねぇだろ、ってことを言ってんだよ なでしこは、単に日本語ってだけじゃなく、
自然言語にきわめて近い「ハイパー高級言語」という感じ。
ここまで来ると日本語が理解できる人なら、
基本的なコードを理解できる。
必要なのはアルゴリズムやライブラリなどの理解だけ。 do { 忖度(); } while(憲法九条廃止()==法案否決 || 国民の基本的人権停止()==法案否決); >>136
この本には do/while は避けて while を使えって書いてある
個人的には賛同しかねるが >>108
そう思うだろ?
main( ) じゃないけど1関数 38,000行って言うのを見たことあるから世の中にはそんなものもあるんだろうなって思う
(もちろんジョークコードの類いじゃなくてまっとうな製品に入ってるソフトウェア)
世の中はお前さんが思ってるより遥かに広いぞ w >>118
残念ながら一ヶ月後の自分は他人なんだな w >>138
言語はなんやろ?
まあ俺なら何でもメクラで縦横60x80に分割するけどな >>140
言語はC
まあ詳しくは話せないけど超でかい状態遷移の制御ルーチン 1関数8000行までは見たことがある
しかもC++だ 偏見かもしれないが、ポインタに不慣れな人はCで巨大関数をつくりがち。
他人が用意したサンプルつきのものは使えても、自分ではポインタ込みの設計が苦手な人。
特に組み込みで見られる巨大関数はメモリ管理が下手なものが多いと思う。 >>138
それを手作業でつくった
と信じてるところがカワイイ >>144
自動生成ならもっととんでもないものはいくらでもある
井の中の蛙乙 w >>33
無名関数のある言語ならば関数名も変数名も同じでありうる
例えばJavaScriptでは以下の二つは同じ
・var GetPage = function (url){...};
・function GetPage(url){...}
つまり「意味がはっきり通る単語を変数名に使う」と述べるだけで関数名についても言及していることになる 外国人ならコメント無くても一瞬で理解できるコードの塊はあっても
自分たちが作ったものを読むのは日本人だから日本語が無いとコードの塊を一瞬で理解するのは難しい
一見無駄に見えるコメント、特にイフ文の説明も読みやすさを重視するなら入れる意味があることがある。 >>127
同意。
コメントを書く習慣のない人に書かせると大抵こうなるね >>149
コード理解するのに別に外人だからとか日本人だからとか関係ないと思うぞ。 コードを要約したコメントも
「なでしこ」だと最小限で済むはず。
コメントだけでコードの見通しがよくならない。
自然言語に近い日本語プログラムだと
アルゴリズムを理解していなくても合理的思考が働く人なら、
そのコードが何をやっているか理解できる可能性が極めて高い。 つまり、自然言語に近く設計された日本語プログラミング言語だと
いわゆる日本語でその手順が書かれた「アルゴリズム」がそのまま
コードのようになっているようなもの。
コメントはせいぜいそのアルゴリズムに適切な名称を与える程度で済む。 checkで始まるメソッド名は禁止にしてほしい。
チェックボックスにチェックを入れるメソッドなのか、内部の値を検証するのか、
修正もするのか、値が妥当な場合の戻り値など必要な情報がぜんぜん読み取れない。 //ここで2を足すがの、本当は1を足すのが正しいと思うけど、
//社長に言われたので、2を足すことにします。 関数の引数に詳細な説明コメントを付け
その引数以外を使わない中身にしとけば
ほぼ難解さは回避できる。
でも、そういうモジュール構造に設計するために
気が遠くなるような思考が必要な。
「人間は考える葦である」 −パンセ− より >>154-155
IsChecked〜()、IsValid〜()で桶。
関数名よりも、クラスメンバ関数なら、ちゃんとconst宣言付ける習慣も付けとけよ
と言いたい。 ライブラリ等で一度宣言が出回ったら、後から変更できない。 ダサすぎw
page とか url とかだけでも有り得ないセンスなのに fetch とか download とか素人かよw どっから持ってくるなんて
欲しい人には関係ないもんな fetchなんてネットじゃなくてメモリからの読み込みじゃないのか
downloadだってネットを意味しないよね
wgetの方が分かりやすいだろうに インターネットから取ってくる時は fetch や download を使えなんてただの俺ルールじゃん
メソッド名で取得元を区別したいなら getPageFromURL や getPageFromDocDB の方が遥かにマシ
それにローカルに置いてたデータをクラウド上のサーバに置くことにしたり
透過キャッシュやプロキシを導入したりしたら
いちいちクライアントのメソッド名を書き換えるの? ☆ 私たち日本人の、日本国憲法を改正しましょう。総務省の、
『憲法改正国民投票法』、でググってみてください。
2017年10月22日(日)の衆議院選挙は、ぜひ投票に行きましょう。
平和は勝ち取るものです。お願い致します。☆☆ ■ このスレッドは過去ログ倉庫に格納されています