- philosophyszk
- 26369
- 49
- 0
- 47
今日初めてプログラミングに触れて、講師の先生が「上級者が書くコードはすごく短い。軽いからコンピュータもすぐに動く。でも、初心者は長いコードを書いてしまい、重いうえにうまく動かない時がある」と言う話を聞いて、高等な魔法使いが使う無詠唱魔法がいかにすごいかを瞬時に理解した。
2017-11-18 18:54:18@Haruto9000 はじめまして 「金槌」という一言で表せるものが「木の棒に円柱状の金属がはめ込んであり、釘等を打ち付ける事が出来る工具」と毎回書かなければならないですね。 それ使えるよ、再現出来るよ、同じクオリティ維持出来るよは実は困難で、優れた小説家や数学科も素敵な魔法使いだと思います。
2017-11-19 14:55:37いちいち長ったる肩書き書かなくてもええように最初長ったる肩書き書いてから(以降、甲とする)みたいな。 歌詞カードの※繰り返し〜みたいな感じやとわしは思ってた
2017-11-20 14:44:29プログラミング
@Haruto9000 うーん。。いくらシンプルでも、得意になってわかりにくいコードを書く方が、私は宜しくないと思うんですよね- これは、「シンプルかつ解りやすいフロー構成が極意」と言うのが、正解だと思います、論理的に( ^)v_
2017-11-19 08:06:58@Haruto9000 リソースが潤沢な環境下で動くものであれば可読性を重視することもありますし、ハードウェアに近い部分のプログラムとかは速度重視で可読性は捨てることもあります。ケースバイケースですよ😄
2017-11-19 10:32:26@Haruto9000 その短いコードの裏には綿密な処理があるので短い=軽いってのは正確には違います でもその処理を理解している証しでもあるので違うとも言い切れませんが
2017-11-19 14:42:52@Haruto9000 若い頃、ハードが高価だった時代は「メモリ1バイトは血の一滴」などと呼ばれ、一文字でも短いものが良いとされたが、今は可読性も大事。計算速度も早いので多少の冗長性も忌避するほどではない。ただ、短いプログラムほどバグが入りにくい、とは言える。
2017-11-19 15:24:08@Haruto9000 昔々、Windowsがようやく出回ってた頃にマシンパワー的に何で動いているのかわからない無数にひろがる回転する動画のプログラムが、たった数行のコードだったとか。まぁ動いてるの見たんだけど、当時も今も魔法使いの呪文詠唱コードとしか思えなかったですだす。
2017-11-20 00:11:14@Haruto9000 若干の補足 >適切なレベルの構造 「推敲」が重要。 コーディング時「必ず周辺の記述を意識する事」が重要。 「周辺記述との不整合」と「それを解消し、更に発展させる事」が全て。 これは「現代国語に関しても言える事」。 「現代国の表現・理解」=「プログラムの表現・理解」。 ※推敲なき表現は無
2017-11-19 16:15:10@Haruto9000 >すごく短い 機械制御等サイズが全ての世界でなければ 上級者のコードは「短い」ではなく「ムダ」が無くエレガントです。 また「盲目的に局所的でなく、適切なレベルの構造」を持っています。 現在、これらは「デザインパターン(GoF等)」として整理されています。 これらを深く理解する事は重要です。
2017-11-19 13:37:36@Haruto9000 @SGS_ZINGI03 非力なプログラミング力でも組み合わせの妙で大幅増強してくれる、パイプというテクニックがありましてな。 sh とか R という言語で使えます。早期に知っておくと、やれる事の幅が広がりますぜ。
2017-11-19 17:57:17@Haruto9000 JavaScriptなら function hoge(){ return null; } と、 let hoge = ()=> { return null; } の2種類(以上)あるけど、 後者は上級者で前者は初心者。 だがしかし、コードの量と処理スピードは変わらない みたいな事もあるから注意(´・ω・`)
2017-11-19 23:34:48@Haruto9000 マシンの能力が上がった現代では、「効率的である事」「小容量であること」よりも「誰が見てもわかり易いこと」「メンテナンスし易いこと」を優先せよと職場では言われますね。 その次が「実績があること」、その次ぐらいが「シンプルで小容量であること」 もちろん、作るものの特性によりますが…
2017-11-20 07:18:49@Haruto9000 凄く短いというよりも、短く単純化した処理、または長くて何度も使用する処理を関数(メソッド)で作って、大本の動かす関数(メソッド)を見るだけで瞬時に何の処理を実行しているかがわかるコーティングが一番ということかも。
2017-11-20 08:14:52@Haruto9000 伴わないものもありますよ?(。・ω・。) バブルソート コード短く単純 メモリ軽い 処理長い クイックソート・マージソート コード長く複雑 メモリ少し必要 処理早い
2017-11-20 12:12:51@Haruto9000 FF外から失礼します。 短い=軽い ではなく 短い≒軽い ですね。例えばC++は共通化を進めれば「軽く」て「短い」コードになりますがVBでそれ(≒関数化)をやると関数呼び出しのオーバヘッドが発生するので「重く」なります。なので言語や環境による、とご理解下さい
2017-11-20 12:34:24@Haruto9000 関数化以外にもコードを短くする方法(オブジェクト指向で継承を工夫するなど)はありますが、おおよそどの方法にしてもVBだと「重く」なる傾向にあります。最終的にコードを短くする≒共通化する という事になりますが、共通点は「バグが少なくメンテナンスが容易なプログラムになる」という事です
2017-11-20 12:39:11