シェルスクリプトに関する総合スレッドです。
全般
・荒しは無視しましょう。
・丁寧な姿勢を心掛けましょう。
・ネチケット(死語)を意識しましょう。
前スレ: シェルスクリプト総合 その27(https://mevius.5ch.net/test/read.cgi/unix/1525337663/)
探検
シェルスクリプト総合 その28
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/07/24(火) 11:01:16.36ID:r0TJj2hB570デフォルトの名無しさん
2018/09/01(土) 18:38:06.88ID:+0pKcVMh 誰が提唱した理論だろう?
謎理論?
謎理論?
571デフォルトの名無しさん
2018/09/01(土) 18:42:01.49ID:mPcVbgud シェルスクリプトが大規模に向いてないという理由を
誰も答えてくれないので俺が書いてやる
まず前提としてどんな言語であっても、言語だけでは大規模開発を
するのは無理RubyでもC#でもJavaであってもだ。
少し前まではJavaScriptも大規模開発に向かないと
言われていたはずだ。それが解決したのは何故か?
大規模開発をするのに必要なのは言語じゃない。フレームワークとライブラリだ。
どんな言語でも大規模開発するためにフレームワークとライブラリを使うだろう?
逆にこれらを使わないで大規模開発なんて到底無理だろ?
JavaScriptが大規模開発できるようになったのも、
フレームワークとライブラリが補完されたからだよ。
シェルスクリプトも昔のJavaScriptと同じ状況。
といっても俺はシェルスクリプトで大規模開発をすることには興味がなく、
せいぜい数千行程度の中規模ぐらいまでしかやることはないだろう。
何故かと言うと単にシェルスクリプトに適した内容で
10万行を超えるようなものが思いつかないからだ
だがそれはシェルスクリプトで大規模開発ができないということにはならない。
実際USPとかいうので、無印良品や東急ハンズのシステムが作られている(いた?)だろ
http://www.atmarkit.co.jp/news/200909/07/lltv03.html
https://www.hands-lab.com/tech/entry/62.html
(適してないとは思うが)足りない部分を補えば大規模開発だってできることは証明済みだよ
まとめると、現在のシェルスクリプトが大規模開発に向いてないのは
フレームワークやライブラリが不足しているから。
俺がシェルスクリプトで大規模開発をやらないのは、
シェルスクリプトが適した内容で大規模なものを思いつかないから。
それはそれとして中規模を小規模にするためのフレームワークやライブラリは欲しい。
誰も答えてくれないので俺が書いてやる
まず前提としてどんな言語であっても、言語だけでは大規模開発を
するのは無理RubyでもC#でもJavaであってもだ。
少し前まではJavaScriptも大規模開発に向かないと
言われていたはずだ。それが解決したのは何故か?
大規模開発をするのに必要なのは言語じゃない。フレームワークとライブラリだ。
どんな言語でも大規模開発するためにフレームワークとライブラリを使うだろう?
逆にこれらを使わないで大規模開発なんて到底無理だろ?
JavaScriptが大規模開発できるようになったのも、
フレームワークとライブラリが補完されたからだよ。
シェルスクリプトも昔のJavaScriptと同じ状況。
といっても俺はシェルスクリプトで大規模開発をすることには興味がなく、
せいぜい数千行程度の中規模ぐらいまでしかやることはないだろう。
何故かと言うと単にシェルスクリプトに適した内容で
10万行を超えるようなものが思いつかないからだ
だがそれはシェルスクリプトで大規模開発ができないということにはならない。
実際USPとかいうので、無印良品や東急ハンズのシステムが作られている(いた?)だろ
http://www.atmarkit.co.jp/news/200909/07/lltv03.html
https://www.hands-lab.com/tech/entry/62.html
(適してないとは思うが)足りない部分を補えば大規模開発だってできることは証明済みだよ
まとめると、現在のシェルスクリプトが大規模開発に向いてないのは
フレームワークやライブラリが不足しているから。
俺がシェルスクリプトで大規模開発をやらないのは、
シェルスクリプトが適した内容で大規模なものを思いつかないから。
それはそれとして中規模を小規模にするためのフレームワークやライブラリは欲しい。
572デフォルトの名無しさん
2018/09/01(土) 18:46:31.18ID:IN1XIdeB 休日は議論が捗りますね
573デフォルトの名無しさん
2018/09/01(土) 18:46:41.92ID:/wwW4VSs コマンドラインインタープリタを自動化したもんを
シェルスクリプトとというの
頭悪いバカのみんな分かった?
頭悪いバカは用途がわかってない、、、
シェルスクリプトとというの
頭悪いバカのみんな分かった?
頭悪いバカは用途がわかってない、、、
574デフォルトの名無しさん
2018/09/01(土) 18:49:33.52ID:/wwW4VSs たとえばなこのスレにいるような
コマンド叩ける程度の知能しかないオペレーターみたいなヤツが
シェルスクリプトだったらいっぱい自動でコマンド叩けると
必死に主張してるワケ
コマンド叩ける程度の知能しかないオペレーターみたいなヤツが
シェルスクリプトだったらいっぱい自動でコマンド叩けると
必死に主張してるワケ
575デフォルトの名無しさん
2018/09/01(土) 18:55:47.33ID:mPcVbgud お、今気づいたが、git subtreeってそのオプションの多さに比べて、
コードが少し少ないんじゃないか?と思ったら、
https://github.com/git/git/blob/master/contrib/subtree/git-subtree.sh#L11-L33
OPTS_SPECを定義して、git rev-parse --parseopt つかって
何やらオプションを正規化してるんだな
gitにこんな機能があったとは
とは言え、劇的にコードが減ってるわけじゃないから
これなら http://docopt.org/ の方が優れてるな
コードが少し少ないんじゃないか?と思ったら、
https://github.com/git/git/blob/master/contrib/subtree/git-subtree.sh#L11-L33
OPTS_SPECを定義して、git rev-parse --parseopt つかって
何やらオプションを正規化してるんだな
gitにこんな機能があったとは
とは言え、劇的にコードが減ってるわけじゃないから
これなら http://docopt.org/ の方が優れてるな
576デフォルトの名無しさん
2018/09/01(土) 18:59:35.38ID:mPcVbgud577デフォルトの名無しさん
2018/09/01(土) 19:05:44.41ID:/wwW4VSs シェルスクリプトでじかに文字列の処理なんかしないからな
sedやawkを使っても
頭が致命的に悪いとコレもシェルスクリプトで書いてやりたいとなるわけか
なるほどな
sedやawkを使っても
頭が致命的に悪いとコレもシェルスクリプトで書いてやりたいとなるわけか
なるほどな
578デフォルトの名無しさん
2018/09/01(土) 19:08:19.43ID:jmAsDv6y なんの話してたんだっけ?
579デフォルトの名無しさん
2018/09/01(土) 19:09:38.27ID:mPcVbgud サマータイムスレにもいた半角使いのキチガイ野郎かな?
みんな、こいつの味方するの?w
みんな、こいつの味方するの?w
580デフォルトの名無しさん
2018/09/01(土) 19:10:41.10ID:mPcVbgud581デフォルトの名無しさん
2018/09/01(土) 19:17:26.68ID:HKyHRnHf >>568
その理論について詳しく教えてくれw
その理論について詳しく教えてくれw
582デフォルトの名無しさん
2018/09/01(土) 19:20:00.37ID:mPcVbgud583デフォルトの名無しさん
2018/09/01(土) 19:22:31.10ID:4jvmXnIZ ム版来たせいで、ム版名物の半角君も長文君も呼び寄せちゃったか…
584デフォルトの名無しさん
2018/09/01(土) 19:25:33.74ID:HKyHRnHf585デフォルトの名無しさん
2018/09/01(土) 19:27:13.01ID:mPcVbgud >>583
その「長文君」がム板に来る流れを作った張本人という可能性は考えないのかい?w
その「長文君」がム板に来る流れを作った張本人という可能性は考えないのかい?w
586デフォルトの名無しさん
2018/09/01(土) 19:54:56.43ID:HKyHRnHf587デフォルトの名無しさん
2018/09/01(土) 19:55:19.76ID:4jvmXnIZ 嫌われ者の長文君ち〜ッス
588デフォルトの名無しさん
2018/09/01(土) 21:04:14.49ID:2NCbxz5b >>583,587
その二人ともなぜか 俺だけ 優秀と思っている不思議さwだから嫌われ者同士でも互いに嫌ってるのかww
その二人ともなぜか 俺だけ 優秀と思っている不思議さwだから嫌われ者同士でも互いに嫌ってるのかww
589デフォルトの名無しさん
2018/09/01(土) 22:34:21.93ID:/wwW4VSs オレが優秀なワケじゃない
オマエが健常者じゃないだけだからな
まずそこを自覚しないといけない
そこを勘違いしたらダメなワケ
オツムに軽度の障害があるとみなせるぐらい知能に問題がある
オマエが健常者じゃないだけだからな
まずそこを自覚しないといけない
そこを勘違いしたらダメなワケ
オツムに軽度の障害があるとみなせるぐらい知能に問題がある
590デフォルトの名無しさん
2018/09/01(土) 22:59:24.12ID:2NCbxz5b 別にそういう個別特定なのはいいのねん
お前には俺(のレス)がそう見えるというのはお前の価値観からそう見えるのはしょうがない
だがしかし、お前の場合はレス個別に対してじゃないのもあるからな。不特定多数のも。自称健常者は敵が多いからなのか??w
お前には俺(のレス)がそう見えるというのはお前の価値観からそう見えるのはしょうがない
だがしかし、お前の場合はレス個別に対してじゃないのもあるからな。不特定多数のも。自称健常者は敵が多いからなのか??w
591デフォルトの名無しさん
2018/09/01(土) 23:12:57.65ID:2NCbxz5b wwww いや、笑った。すげえなww
低学歴 知恵遅れ 健常者じゃない と、どこのスレでもどのレスでもそういう言葉があるな。すごいなww
ちょっと頭のおかしな人が道中をぶつくさ他人に悪態ついてるのと似てると思うけどなあ。「健常者」なんて普通使わないと思うけど、もしかしたらマジ病気のひと?ww
普通に会話、普通のレスできないの?あったとしたらすまん、あまりにもあういうのばかりで見逃したかもw
低学歴 知恵遅れ 健常者じゃない と、どこのスレでもどのレスでもそういう言葉があるな。すごいなww
ちょっと頭のおかしな人が道中をぶつくさ他人に悪態ついてるのと似てると思うけどなあ。「健常者」なんて普通使わないと思うけど、もしかしたらマジ病気のひと?ww
普通に会話、普通のレスできないの?あったとしたらすまん、あまりにもあういうのばかりで見逃したかもw
592デフォルトの名無しさん
2018/09/01(土) 23:17:02.98ID:/wwW4VSs オレと会話したいの?
残念なことにな、知恵遅れとまともな人間のあいだでは
会話が成立しない
プロトコルが違う
オレと会話したいなら
まず相応のプロトコルを身につけてからだ
残念なことにな、知恵遅れとまともな人間のあいだでは
会話が成立しない
プロトコルが違う
オレと会話したいなら
まず相応のプロトコルを身につけてからだ
593デフォルトの名無しさん
2018/09/01(土) 23:17:24.80ID:mPcVbgud 他スレで長文書いてたw まあ話は進んでないみたいだが
https://medaka.5ch.net/test/read.cgi/php/1474523013/854
https://mevius.5ch.net/test/read.cgi/hp/1533007852/229
今更だがsedって意外と便利に使えるのな。正規表現による範囲指定とか
s///使った単なる置換ぐらいにしか使ってなかった。
書いていたコードが短くなりそうで嬉しいw
https://medaka.5ch.net/test/read.cgi/php/1474523013/854
https://mevius.5ch.net/test/read.cgi/hp/1533007852/229
今更だがsedって意外と便利に使えるのな。正規表現による範囲指定とか
s///使った単なる置換ぐらいにしか使ってなかった。
書いていたコードが短くなりそうで嬉しいw
594デフォルトの名無しさん
2018/09/01(土) 23:18:54.31ID:J8s4Euww 長文はキチガイ
595デフォルトの名無しさん
2018/09/01(土) 23:41:04.17ID:Z9gelboG yesコマンドってPOSIXユーティリティじゃないのか……。
596デフォルトの名無しさん
2018/09/01(土) 23:46:09.11ID:2NCbxz5b >>592
会話のためじゃなかった、なんの為に数々のレスしているの?君は
まあ、自己顕示欲承認欲求からだけだろうなというのは、数々のレスからは垣間見えるけど、そういうことなのね、そういうことでいいのねw
会話のためじゃなかった、なんの為に数々のレスしているの?君は
まあ、自己顕示欲承認欲求からだけだろうなというのは、数々のレスからは垣間見えるけど、そういうことなのね、そういうことでいいのねw
597デフォルトの名無しさん
2018/09/02(日) 00:04:43.96ID:Tb3tt8fk この板をまともな板にするために
この板でレスしてる
オマエみたいな頭悪い低学歴知恵遅れが幅きかせて
いま、この板は正常に機能してない
低学歴知恵遅れは低学歴知恵遅れの自覚がない
しかも自己評価だけは高い
その分タチがワルイ
まともな人間が近寄らない
そしてその自覚すらない
その自覚がないから更生もしない
つまり更生することもないから排除しかない
つまりオレは
素晴らしく情報価値が高いレスを提供すると同時に
この板から低学歴知恵遅れのクソニート、底辺ITドカタを排除する作業を実施している
わかった?
まともな板にするためにな
ひたすらオレはレスをしている
わかった?
この板でレスしてる
オマエみたいな頭悪い低学歴知恵遅れが幅きかせて
いま、この板は正常に機能してない
低学歴知恵遅れは低学歴知恵遅れの自覚がない
しかも自己評価だけは高い
その分タチがワルイ
まともな人間が近寄らない
そしてその自覚すらない
その自覚がないから更生もしない
つまり更生することもないから排除しかない
つまりオレは
素晴らしく情報価値が高いレスを提供すると同時に
この板から低学歴知恵遅れのクソニート、底辺ITドカタを排除する作業を実施している
わかった?
まともな板にするためにな
ひたすらオレはレスをしている
わかった?
598デフォルトの名無しさん
2018/09/02(日) 00:12:57.53ID:elP7igYW やっぱり移動先はLinux板にしといたほうが
良かったんじゃねーの?w
良かったんじゃねーの?w
599デフォルトの名無しさん
2018/09/02(日) 00:14:17.23ID:fQwovzZh >>597
>この板をまともな板にするために
wwwww マジでっ!?
その言っているのは、いろいろ自分にも当てはまるだろうと思うんだけどな
自己顕示欲承認欲求と見なされるのは嫌らしいというのだけはわかったよw
>この板をまともな板にするために
wwwww マジでっ!?
その言っているのは、いろいろ自分にも当てはまるだろうと思うんだけどな
自己顕示欲承認欲求と見なされるのは嫌らしいというのだけはわかったよw
600デフォルトの名無しさん
2018/09/02(日) 00:15:05.38ID:Tb3tt8fk 当然、オマエも排除の対象だ
601デフォルトの名無しさん
2018/09/02(日) 00:16:13.74ID:fQwovzZh 「排除」www すげええええっwwww
いや、怖い...w
いや、怖い...w
602デフォルトの名無しさん
2018/09/02(日) 00:16:18.96ID:CFWyulsd >>595
これは yes って返せばいいのか!?
これは yes って返せばいいのか!?
603デフォルトの名無しさん
2018/09/02(日) 00:17:25.68ID:Oiltae2A 俺の目の黒いうちはまともにはさせんから安心しろ
604デフォルトの名無しさん
2018/09/02(日) 00:17:46.37ID:8TU9g+nX お前も駆逐してやる
605デフォルトの名無しさん
2018/09/02(日) 00:24:56.83ID:elP7igYW >>602
yじゃね?
yじゃね?
606デフォルトの名無しさん
2018/09/02(日) 00:27:05.66ID:elP7igYW どうでもいいけど、
yesコマンドって
1. なんに使うんだ?
2. なるほど(使いみちを聞いて)
3. いつ使うんだ?(使ったことがない) ← みんなこの状態だよな?w
yesコマンドって
1. なんに使うんだ?
2. なるほど(使いみちを聞いて)
3. いつ使うんだ?(使ったことがない) ← みんなこの状態だよな?w
607デフォルトの名無しさん
2018/09/02(日) 00:28:33.57ID:fQwovzZh >>606
まったくもって、まんまだなw
まったくもって、まんまだなw
608デフォルトの名無しさん
2018/09/02(日) 00:40:01.27ID:elP7igYW だいたい、-yオプションとか、-fオプションとか、-qオプションがあるからねぇ
おっとまたオプションの話だw
オプションついでにいうとtarとかpsってなんでハイフンなしで
tar czvf とか ps aux とか書くんだろう?
ちょっと調べたら昔の仕様?らしいけど
今はtar -czvf とか ps -aux とかできるみたいだけどさ。
まあ今はハイフンなしオプションのことを考慮する必要は無いだろうけど
それに対応したライブラリ(getoptsみたいなの)ってあるんだろうか?
おっとまたオプションの話だw
オプションついでにいうとtarとかpsってなんでハイフンなしで
tar czvf とか ps aux とか書くんだろう?
ちょっと調べたら昔の仕様?らしいけど
今はtar -czvf とか ps -aux とかできるみたいだけどさ。
まあ今はハイフンなしオプションのことを考慮する必要は無いだろうけど
それに対応したライブラリ(getoptsみたいなの)ってあるんだろうか?
609デフォルトの名無しさん
2018/09/02(日) 02:09:13.86ID:4Jf6YH6e >>608
ないのでは? tar の場合はハイフンなしの Old style のオプション指定されていたら
まずはハイフン付きに置き換えてから解釈しているらしい。
https://qiita.com/junjis0203/items/6bb48184b508045e69da
ないのでは? tar の場合はハイフンなしの Old style のオプション指定されていたら
まずはハイフン付きに置き換えてから解釈しているらしい。
https://qiita.com/junjis0203/items/6bb48184b508045e69da
610デフォルトの名無しさん
2018/09/02(日) 06:17:08.93ID:667Fbrpy611デフォルトの名無しさん
2018/09/02(日) 09:16:59.93ID:elP7igYW >>609
なるほど。
初期(いつ?)の頃ってコマンドの開発どうだったんだろうね
ハイフンなしのオプションはしばしば用いられていたのか?
どんなコマンドも最初の実装ってのは存在するわけで、
それが今とどう同じなのか違うのか少し気になってきた
なるほど。
初期(いつ?)の頃ってコマンドの開発どうだったんだろうね
ハイフンなしのオプションはしばしば用いられていたのか?
どんなコマンドも最初の実装ってのは存在するわけで、
それが今とどう同じなのか違うのか少し気になってきた
612デフォルトの名無しさん
2018/09/03(月) 09:07:41.26ID:Phd/3F0T 俺、数百行クラスになったら静的言語にするから、
シェルスクリプトどころかrubyもpythonも使わない。
数百行にもなると書き捨てって規模じゃないし、
静的型検査なしで書くのは面倒くさい。
あとJavaScriptには現代的言語の持つ抽象化機能があらかたあるから、
連想配列も構造体相当品もないシェルスクリプトと同列に並べるのはJavaScriptに失礼。
シェルスクリプトどころかrubyもpythonも使わない。
数百行にもなると書き捨てって規模じゃないし、
静的型検査なしで書くのは面倒くさい。
あとJavaScriptには現代的言語の持つ抽象化機能があらかたあるから、
連想配列も構造体相当品もないシェルスクリプトと同列に並べるのはJavaScriptに失礼。
613デフォルトの名無しさん
2018/09/03(月) 09:13:23.99ID:Wp4QdYvu シェルスクリプトでcのソースを書くのはちょっと面白い。
614デフォルトの名無しさん
2018/09/03(月) 09:52:05.06ID:WkDP4f9E615デフォルトの名無しさん
2018/09/03(月) 10:26:05.35ID:cQ/Qcp18 >>612
大変やね。たまには数十クラス程度のものを作っても良いんやで
大変やね。たまには数十クラス程度のものを作っても良いんやで
616デフォルトの名無しさん
2018/09/03(月) 11:13:52.71ID:Phd/3F0T >>615
そういう小規模なプログラムばかり書いてたらもっと動的言語を
使ってたかもしれないなあ。
就職して最初のプロジェクトがいきなり100万行オーバーのCプログラムの
大規模改造とかで、それ以後も数十万行クラスのプログラムばかり
触ってきて、ちょっと規模が大きくなると処理系の検査に頼る
習慣がついてしまった。
そういう小規模なプログラムばかり書いてたらもっと動的言語を
使ってたかもしれないなあ。
就職して最初のプロジェクトがいきなり100万行オーバーのCプログラムの
大規模改造とかで、それ以後も数十万行クラスのプログラムばかり
触ってきて、ちょっと規模が大きくなると処理系の検査に頼る
習慣がついてしまった。
617デフォルトの名無しさん
2018/09/03(月) 11:21:30.86ID:IWP2OX+N >>616
うん、仕事でしかプログラミングしてないんだろうな
ってのはすぐにわかったよ。
1から作ったことがあれば、いきなり数百クラスに
なることなんて無いからね
保守的な開発しかしたこと無くて、
小さなシステムの組み合わせで大きなものを作るという発想がない
古臭いものメンテナンスしかしたことないんだろうなと
うん、仕事でしかプログラミングしてないんだろうな
ってのはすぐにわかったよ。
1から作ったことがあれば、いきなり数百クラスに
なることなんて無いからね
保守的な開発しかしたこと無くて、
小さなシステムの組み合わせで大きなものを作るという発想がない
古臭いものメンテナンスしかしたことないんだろうなと
618デフォルトの名無しさん
2018/09/03(月) 13:56:12.52ID:Phd/3F0T >>617
あれだけの情報で趣味プログラム書いてないってわかるなんてスゴイ⤴⤴
その推理フツーに間違ってるがw
そもそも小さなプログラムだって普通に書いてるし、だからこそシェルスクリプトスレに来てるわけで、
大きなプログラムしか書いてないとするとその時点で矛盾するじゃん。
自己矛盾した推理を前提に話を進めるとか、同僚にいたら困りそうなタイプだなあ。
あれだけの情報で趣味プログラム書いてないってわかるなんてスゴイ⤴⤴
その推理フツーに間違ってるがw
そもそも小さなプログラムだって普通に書いてるし、だからこそシェルスクリプトスレに来てるわけで、
大きなプログラムしか書いてないとするとその時点で矛盾するじゃん。
自己矛盾した推理を前提に話を進めるとか、同僚にいたら困りそうなタイプだなあ。
619デフォルトの名無しさん
2018/09/03(月) 14:47:29.83ID:IWP2OX+N >>618
いや、そもそもお前の発言が矛盾してるんだって。
↓これお前の発言な
> 俺、数百行クラスになったら静的言語にするから、
> シェルスクリプトどころかrubyもpythonも使わない。
数百行クラスになったら静的言語ってことは
数百行クラスになる前はどうしてるんだって話だよ
いや、そもそもお前の発言が矛盾してるんだって。
↓これお前の発言な
> 俺、数百行クラスになったら静的言語にするから、
> シェルスクリプトどころかrubyもpythonも使わない。
数百行クラスになったら静的言語ってことは
数百行クラスになる前はどうしてるんだって話だよ
620デフォルトの名無しさん
2018/09/03(月) 19:06:52.08ID:HxI+JP9z >>619
> 数百行クラスになったら静的言語ってことは
> 数百行クラスになる前はどうしてるんだって話だよ
え、そこに矛盾はまったくないんだけど、マジでホントに分からないの?
明日の19時くらいまで待ってあげるから自分で考えてみた方がいいぜ。
降参すればもっと早く答を教えてあげるけど、こんな当たり前の話、ホントに分からないとするとそれはそれでまずい気がする。
> 数百行クラスになったら静的言語ってことは
> 数百行クラスになる前はどうしてるんだって話だよ
え、そこに矛盾はまったくないんだけど、マジでホントに分からないの?
明日の19時くらいまで待ってあげるから自分で考えてみた方がいいぜ。
降参すればもっと早く答を教えてあげるけど、こんな当たり前の話、ホントに分からないとするとそれはそれでまずい気がする。
621デフォルトの名無しさん
2018/09/03(月) 19:27:06.50ID:HpF+lD7Q おまいら、自分の書き込みが変に解釈された事の方を問題視しろよ。
相手が客だった場合、どんなに釈明しようが上司はお前が悪いとしか言わんぞ。
相手が客だった場合、どんなに釈明しようが上司はお前が悪いとしか言わんぞ。
622デフォルトの名無しさん
2018/09/03(月) 19:33:15.32ID:HxI+JP9z623デフォルトの名無しさん
2018/09/03(月) 20:06:42.29ID:IWP2OX+N 上の方でもプログラマを自称しながら、アマチュアっぽいやつがいたからなぁw
まあ、明日なにか言おうとしてるみたいだから、何も言えなくなるように
大規模アプリを作るときの鉄則を言っておくよ。
まず大規模アプリを作るときに重要なのは細かくモジュールに分けましょうということ
モジュールという言葉の意味は文脈で微妙に異なるけど、きっちり定義したいわけじゃなく
小さなプログラム、小さなファイル、小さなクラス、小さな関数等に分けましょうという話
これをやっておかないと、例えばC言語のHello Worldであっても、
printfの複雑な実装を、一つのファイルに全部書かないといけなくなくなって
数百行なんてあっという間に超えてしまう
>>612は数百行程度で静的言語にするとか言ってるが、
俺に言わせれば、大規模アプリであっても"1モジュール(最小単位の関数)"で
数百行なんてめったになることなんてないだろうと。
まあ、どうせ >>612はプロジェクト全体で数百行と言ったつもりなんだろうが、
お前は単体テストできるようにしてないのかと。それぞれ独立して考えられるように設計しろよ。
小さなモジュールを組み合わせて作るんだから、プロジェクト全体の行数で考えるのは意味ないんだよ。
Hello Worldでもプロジェクト全体という話ならprintfの実装も含めなきゃいけない。
でもブラックボックスとして扱ってるんだろ? それと同じで自分で作る場合もブラックボックス化させればいいんだよ
つまり小さなモジュールに分けて作れば、静的言語でなくとも大規模アプリは十分作れるわけだ。
もちろんシェルスクリプトであってもね
もし「シェルスクリプトは上から下へ流れるように作るのが普通なんだ。
関数なんて作ってはいけない、複数のファイルに分けたりしてはいけない、複数のスクリプトに分けるのも禁止
だから大きなものは作れないんだ!それが世界の常識なんだ!!」という理屈であれば、
それは頭が固いお前の思い込みが、大きな物を作れない根本原因だろ。ってこと
結局プログラマを自称しているようだが、小さく分けるという設計ができない
アマチュアレベルの人間なんだろうって話だ
まあ、明日なにか言おうとしてるみたいだから、何も言えなくなるように
大規模アプリを作るときの鉄則を言っておくよ。
まず大規模アプリを作るときに重要なのは細かくモジュールに分けましょうということ
モジュールという言葉の意味は文脈で微妙に異なるけど、きっちり定義したいわけじゃなく
小さなプログラム、小さなファイル、小さなクラス、小さな関数等に分けましょうという話
これをやっておかないと、例えばC言語のHello Worldであっても、
printfの複雑な実装を、一つのファイルに全部書かないといけなくなくなって
数百行なんてあっという間に超えてしまう
>>612は数百行程度で静的言語にするとか言ってるが、
俺に言わせれば、大規模アプリであっても"1モジュール(最小単位の関数)"で
数百行なんてめったになることなんてないだろうと。
まあ、どうせ >>612はプロジェクト全体で数百行と言ったつもりなんだろうが、
お前は単体テストできるようにしてないのかと。それぞれ独立して考えられるように設計しろよ。
小さなモジュールを組み合わせて作るんだから、プロジェクト全体の行数で考えるのは意味ないんだよ。
Hello Worldでもプロジェクト全体という話ならprintfの実装も含めなきゃいけない。
でもブラックボックスとして扱ってるんだろ? それと同じで自分で作る場合もブラックボックス化させればいいんだよ
つまり小さなモジュールに分けて作れば、静的言語でなくとも大規模アプリは十分作れるわけだ。
もちろんシェルスクリプトであってもね
もし「シェルスクリプトは上から下へ流れるように作るのが普通なんだ。
関数なんて作ってはいけない、複数のファイルに分けたりしてはいけない、複数のスクリプトに分けるのも禁止
だから大きなものは作れないんだ!それが世界の常識なんだ!!」という理屈であれば、
それは頭が固いお前の思い込みが、大きな物を作れない根本原因だろ。ってこと
結局プログラマを自称しているようだが、小さく分けるという設計ができない
アマチュアレベルの人間なんだろうって話だ
624デフォルトの名無しさん
2018/09/03(月) 20:11:02.86ID:lS5Tq6xt 渾身の長文わろたw
625デフォルトの名無しさん
2018/09/03(月) 20:13:45.46ID:IWP2OX+N まあいつものことだなw
626612
2018/09/03(月) 20:30:39.38ID:HxI+JP9z627デフォルトの名無しさん
2018/09/03(月) 20:40:49.84ID:IWP2OX+N >>626
いや、別にお前にレスしてないしw
大規模アプリを作るときの鉄則を言っただけだし
明日の19時過ぎたら、なんか答え書くんだろ?
それを書いてくれればいいよ。
俺の文章読んで恥ずかしくないならね
まあ一つ言うとしたら、技術力の差ってやっぱりあるよな
他の人が動的言語できているという事実があるというのに
俺はできないんだ!ってよく恥ずかしげもなく言えるよなーと
いや、別にお前にレスしてないしw
大規模アプリを作るときの鉄則を言っただけだし
明日の19時過ぎたら、なんか答え書くんだろ?
それを書いてくれればいいよ。
俺の文章読んで恥ずかしくないならね
まあ一つ言うとしたら、技術力の差ってやっぱりあるよな
他の人が動的言語できているという事実があるというのに
俺はできないんだ!ってよく恥ずかしげもなく言えるよなーと
628デフォルトの名無しさん
2018/09/03(月) 20:43:08.65ID:lS5Tq6xt 大規模アプリを作るときの鉄則www
なんやろ?www
なんやろ?www
629デフォルトの名無しさん
2018/09/03(月) 20:43:49.57ID:IWP2OX+N そうだ、ヒントをやろうw
俺、(1関数で)数百行クラスになったら設計が悪い思って作り直すから、
数百行クラスになることはない
俺、(1関数で)数百行クラスになったら設計が悪い思って作り直すから、
数百行クラスになることはない
630デフォルトの名無しさん
2018/09/03(月) 20:45:19.54ID:RephN+2M なんか一つ一つが長文でここ最近ずっとだらっと最下部までスクロールして閉じるを繰り返してるわ
631612
2018/09/03(月) 21:00:52.21ID:HxI+JP9z これはアレですね。
(a)と答えると自分の間違いを認めることになって耐えられないし、
(b)と答えると明日の19時以降に赤っ恥を書くことになるしで、
(a)とも(b)とも答えられないってヤツですねw
分かりやすい。
自分の間違いを認めると死んぢゃう病に罹患中って奴だw
(a)と答えると自分の間違いを認めることになって耐えられないし、
(b)と答えると明日の19時以降に赤っ恥を書くことになるしで、
(a)とも(b)とも答えられないってヤツですねw
分かりやすい。
自分の間違いを認めると死んぢゃう病に罹患中って奴だw
632デフォルトの名無しさん
2018/09/03(月) 21:09:15.31ID:E2St7m4+ 個々の簡単な完結した機能の簡単なシェルにしといたほうが
単体試験仕様書の設計も簡単
結合試験仕様書の設計も簡単
総合試験仕様書の設計も簡単
知恵遅れが作ると試験による検証すらできないシステムができあがる
単体試験仕様書の設計も簡単
結合試験仕様書の設計も簡単
総合試験仕様書の設計も簡単
知恵遅れが作ると試験による検証すらできないシステムができあがる
633デフォルトの名無しさん
2018/09/03(月) 21:12:48.08ID:IWP2OX+N634デフォルトの名無しさん
2018/09/03(月) 21:13:14.86ID:IWP2OX+N635デフォルトの名無しさん
2018/09/03(月) 21:14:05.20ID:ttVcJTrG TypeScript・Haxe の違い
大規模開発なら圧倒的に、Haxe
大規模開発なら圧倒的に、Haxe
636デフォルトの名無しさん
2018/09/03(月) 21:17:55.11ID:lS5Tq6xt637デフォルトの名無しさん
2018/09/03(月) 21:27:46.12ID:zLYH5Np3 すげーなこのスレ。
とうとうrubyガイジも呼び寄せたぞ。
オールスターじゃん
とうとうrubyガイジも呼び寄せたぞ。
オールスターじゃん
638デフォルトの名無しさん
2018/09/03(月) 21:28:01.12ID:IWP2OX+N 作業していて気づいたんだが >>537-538 の
どういう場合にシェルスクリプトが適しているかの話
少し毛色が違うが、コールバックの仕組みを取り入れるなら
必然的にシェルスクリプトで書かなければいけなくなるな
つまり
1. 簡単なことをやるためにシェルスクリプトを使う
2. だけど中身で一部複雑な処理があるので、そこだけ別コマンドを使う
3. その別コマンドから、シェルスクリプトに定義したコールバック関数を呼び出す
というようなことをやろうと思ったが、2の「別コマンド」がシェルスクリプト以外(正確には別プロセス)だと
シェルスクリプトに定義したコールバック関数を呼び出せない
つまりPerlで書くならば以下のような感じで、正規表現置換をsedコマンドで
実行してしまったら、(スクリプトの内部関数である)foo関数を呼び出すことができない
sub foo { uc($_[0]) }
$text = 'abcdefg';
$text =~ s/([a-c])/foo($1)/eg;
print $text;
どういう場合にシェルスクリプトが適しているかの話
少し毛色が違うが、コールバックの仕組みを取り入れるなら
必然的にシェルスクリプトで書かなければいけなくなるな
つまり
1. 簡単なことをやるためにシェルスクリプトを使う
2. だけど中身で一部複雑な処理があるので、そこだけ別コマンドを使う
3. その別コマンドから、シェルスクリプトに定義したコールバック関数を呼び出す
というようなことをやろうと思ったが、2の「別コマンド」がシェルスクリプト以外(正確には別プロセス)だと
シェルスクリプトに定義したコールバック関数を呼び出せない
つまりPerlで書くならば以下のような感じで、正規表現置換をsedコマンドで
実行してしまったら、(スクリプトの内部関数である)foo関数を呼び出すことができない
sub foo { uc($_[0]) }
$text = 'abcdefg';
$text =~ s/([a-c])/foo($1)/eg;
print $text;
639デフォルトの名無しさん
2018/09/03(月) 21:28:41.85ID:RephN+2M さすがの総合スレ
640デフォルトの名無しさん
2018/09/03(月) 21:33:19.27ID:IWP2OX+N どうでもいいが(俺にとってはどうでも良くないが)
sedとawkとgrepとexprで使える正規表現のパターンが違うのって地味に嫌だなw
もし1から仕様を決められるなら、全部統一されるんだろうな。
HTML5みたいに一度足並み揃えた仕様にリセットされてほしい
sedとawkとgrepとexprで使える正規表現のパターンが違うのって地味に嫌だなw
もし1から仕様を決められるなら、全部統一されるんだろうな。
HTML5みたいに一度足並み揃えた仕様にリセットされてほしい
641デフォルトの名無しさん
2018/09/03(月) 21:51:24.51ID:IWP2OX+N sedの非互換性も辛い・・・というかGNUが便利すぎなんだろうな
642デフォルトの名無しさん
2018/09/03(月) 22:05:03.93ID:5Vmu1cpr643デフォルトの名無しさん
2018/09/03(月) 23:01:37.14ID:E2St7m4+ もうコタエは書いたからな
次の患者さんどうぞ
次の患者さんどうぞ
644デフォルトの名無しさん
2018/09/03(月) 23:24:25.75ID:O250GQ8L 誰がどう見ても患者はお前だろ。精神の
645デフォルトの名無しさん
2018/09/03(月) 23:39:11.39ID:YrDXnGw5 >>643も精神のという意味だろう。この読めなさはw
646デフォルトの名無しさん
2018/09/03(月) 23:57:12.64ID:E2St7m4+ キミラは重篤な患者さんだからな
しょうがない
しょうがない
647デフォルトの名無しさん
2018/09/03(月) 23:59:36.46ID:IWP2OX+N sedで「command i expects \ followed by text」というエラーが出たが
なんか-iの話ばっかり見つかって、期待する答えがなかなか見つからないwww
GNUだと
echo text | sed 'i===' って書くだけで簡単に
===
text
と表示されるんだが、
BSDだと上記エラーがでて、しばらくどうすりゃいいの?状態だったw
持ってた sed & awk ポケットリファレンス 眺めても書いてあることがさっぱりでさ
正しく(POSIX)ではこう書かないといけないんだな。改行がいるとかw
echo text | sed 'i\
===
'
これを1行で書くために、改行を変数に入れるべくこんな変なことをしないといけなかったりw
LF=$(printf '\012_')
LF=${LF%_}
sedって置換機能以外の、本来stream editorとしてバリバリ使いこなそうと思ったら難しいな
ホールドスペース使いこなせる気がしない。何ができるのかも想像できないしw
なんか-iの話ばっかり見つかって、期待する答えがなかなか見つからないwww
GNUだと
echo text | sed 'i===' って書くだけで簡単に
===
text
と表示されるんだが、
BSDだと上記エラーがでて、しばらくどうすりゃいいの?状態だったw
持ってた sed & awk ポケットリファレンス 眺めても書いてあることがさっぱりでさ
正しく(POSIX)ではこう書かないといけないんだな。改行がいるとかw
echo text | sed 'i\
===
'
これを1行で書くために、改行を変数に入れるべくこんな変なことをしないといけなかったりw
LF=$(printf '\012_')
LF=${LF%_}
sedって置換機能以外の、本来stream editorとしてバリバリ使いこなそうと思ったら難しいな
ホールドスペース使いこなせる気がしない。何ができるのかも想像できないしw
648デフォルトの名無しさん
2018/09/04(火) 00:05:33.37ID:gZnu4stV ココは隔離病棟の集中治療室
649デフォルトの名無しさん
2018/09/04(火) 01:03:24.22ID:zS1fHlcp 自覚はあるんだな
650デフォルトの名無しさん
2018/09/04(火) 06:08:51.64ID:fH4o5qCk ホールドスペースをバリバリ使ってた。使いこなしてたかはともかく…
20 年以上も前のことだから、もうできない。
20 年以上も前のことだから、もうできない。
651デフォルトの名無しさん
2018/09/04(火) 08:53:12.61ID:jvRjWg/I ホールドスペースやブランチを使いたくなったらsedやめて他の言語使えって、Macで女子高生が話してた。
652デフォルトの名無しさん
2018/09/04(火) 08:53:37.92ID:ROt4XEkp sedがなんで分かりづらいかの理由がわかった
b(とt)の解説が悪いんだよ。
たいてい、b・・・無条件ジャンプのように書いてあるから
これだけでどうやってフロー制御すりゃいいんだよ?ってなる
正確にはこれ、条件分岐なんだな。ニュアンス的にはこんな感じ
/条件/b :label
bの前はアドレスってことだが、正規表現でもアドレス指定できるから
これを条件とすれば、条件分岐となる。
だけどアドレス(条件)はすべてのコマンドで使えるものだからなのか
そのコマンドの説明のところで省いてしまうから、解説だけを読んでも
ジャンプはあるが条件付きジャンプがねーじゃねーかってなるわけだ
条件文があるならあとは簡単だ。普通の手続き型のコードだわ
b(とt)の解説が悪いんだよ。
たいてい、b・・・無条件ジャンプのように書いてあるから
これだけでどうやってフロー制御すりゃいいんだよ?ってなる
正確にはこれ、条件分岐なんだな。ニュアンス的にはこんな感じ
/条件/b :label
bの前はアドレスってことだが、正規表現でもアドレス指定できるから
これを条件とすれば、条件分岐となる。
だけどアドレス(条件)はすべてのコマンドで使えるものだからなのか
そのコマンドの説明のところで省いてしまうから、解説だけを読んでも
ジャンプはあるが条件付きジャンプがねーじゃねーかってなるわけだ
条件文があるならあとは簡単だ。普通の手続き型のコードだわ
653デフォルトの名無しさん
2018/09/04(火) 09:49:28.21ID:+CEwKGA5 "Commands which accept address ranges" って書いてあるやん…
654デフォルトの名無しさん
2018/09/04(火) 10:20:13.70ID:ROt4XEkp655デフォルトの名無しさん
2018/09/04(火) 11:30:26.75ID:+CEwKGA5 >>654
数行上に書いてあるで
数行上に書いてあるで
656デフォルトの名無しさん
2018/09/04(火) 12:17:38.09ID:ROt4XEkp >>655
何度も同じことを言わせないでくれ
何度も同じことを言わせないでくれ
657デフォルトの名無しさん
2018/09/04(火) 13:15:59.22ID:+CEwKGA5 実際には3行上だった
658デフォルトの名無しさん
2018/09/04(火) 18:17:39.81ID:i2l0SoWn >>652
そこは、素人お断りですw よく読みましょう。
This is just a brief synopsis of sed commands to serve as a reminder to those who already know sed
そこは、素人お断りですw よく読みましょう。
This is just a brief synopsis of sed commands to serve as a reminder to those who already know sed
659612
2018/09/04(火) 19:19:21.04ID:GKTPwsNb 19時過ぎたから答を書く。
言っておくがチョー当たり前のつまらん話だよ。
・短いプログラムは、シェルスクリプトやruby/pythonなど動的型付き言語で書くことが多い
・拡張していくうちに、これ以上長くなったら静的型付き言語で書いた方が楽そうだと思ったら、まるまる静的型付き言語で書き直す。あまり長くなると書き直しも面倒になるから、早めに手を打つ。
・長くなりそうだと初めから分かっている場合は、もちろん最初から静的型付き言語で書く
ってだけだよ。
静的型付き言語使いにはわりとよくある開発形態のはずだが、なんで>>612が矛盾してるなんて結論に至るのか。
言っておくがチョー当たり前のつまらん話だよ。
・短いプログラムは、シェルスクリプトやruby/pythonなど動的型付き言語で書くことが多い
・拡張していくうちに、これ以上長くなったら静的型付き言語で書いた方が楽そうだと思ったら、まるまる静的型付き言語で書き直す。あまり長くなると書き直しも面倒になるから、早めに手を打つ。
・長くなりそうだと初めから分かっている場合は、もちろん最初から静的型付き言語で書く
ってだけだよ。
静的型付き言語使いにはわりとよくある開発形態のはずだが、なんで>>612が矛盾してるなんて結論に至るのか。
660デフォルトの名無しさん
2018/09/04(火) 19:33:33.93ID:FEVdkErP とりあえずここまでレス飛ばしてきたんでまとめを頼む
661612
2018/09/04(火) 19:43:12.33ID:GKTPwsNb662デフォルトの名無しさん
2018/09/04(火) 19:43:56.78ID:FEVdkErP 把握
663612
2018/09/04(火) 19:53:45.96ID:GKTPwsNb あ、>>612の「数百行クラス」ってのを
「(オブジェクト指向言語の)1つのクラスのコードサイズが数百行」と誤解されたようではあるな。
これは俺の表現も誤解を招くものではあった。
単に「1プログラムのコードサイズが数百行くらい」って意味で書いてたんだけどね。
まさかシェルスクリプトスレでオブジェクト指向のクラスのことだと解釈されるとは思わなかった。
「(オブジェクト指向言語の)1つのクラスのコードサイズが数百行」と誤解されたようではあるな。
これは俺の表現も誤解を招くものではあった。
単に「1プログラムのコードサイズが数百行くらい」って意味で書いてたんだけどね。
まさかシェルスクリプトスレでオブジェクト指向のクラスのことだと解釈されるとは思わなかった。
664デフォルトの名無しさん
2018/09/04(火) 21:01:45.22ID:wTvbP50/665612
2018/09/04(火) 21:24:00.90ID:GKTPwsNb >>664
500行を越えるぐらいからかな。
常にその原則を守ってるわけでもなくて、不特定ユーザーに配布するスクリプトではBourne shellで3000行ぐらいのをメンテしてたりもする。
これは規模的に結構辛い。orz
言語は最近はCrystalを試してる。
まだ書き慣れたって段階には達してないけど。
500行を越えるぐらいからかな。
常にその原則を守ってるわけでもなくて、不特定ユーザーに配布するスクリプトではBourne shellで3000行ぐらいのをメンテしてたりもする。
これは規模的に結構辛い。orz
言語は最近はCrystalを試してる。
まだ書き慣れたって段階には達してないけど。
666デフォルトの名無しさん
2018/09/04(火) 21:57:53.47ID:wTvbP50/ >>665
俺は数百行って聞くと2、300をイメージするから、どのぐらいか気になった
crystalとは・・・俺は1.0も出てないものは使えんなあ
うちは処理結果が揮発で良いなら基本bash/pythonを使ってる
俺は数百行って聞くと2、300をイメージするから、どのぐらいか気になった
crystalとは・・・俺は1.0も出てないものは使えんなあ
うちは処理結果が揮発で良いなら基本bash/pythonを使ってる
667デフォルトの名無しさん
2018/09/04(火) 22:13:29.28ID:ROt4XEkp >>659
やっぱり矛盾してるじゃんw
1. 俺、数百行クラスになったら静的言語にするから、シェルスクリプトどころかrubyもpythonも使わない。
2. 短いプログラムは、シェルスクリプトやruby/pythonなど動的型付き言語で書くことが多い
3. 拡張していくうちに、これ以上長くなったら静的型付き言語で書いた方が楽そうだと思ったら、まるまる静的型付き言語で書き直す。
では、長くならない場合は?
シェルスクリプトやrubyもpythonを使うんだろw
やっぱり矛盾してるじゃんw
1. 俺、数百行クラスになったら静的言語にするから、シェルスクリプトどころかrubyもpythonも使わない。
2. 短いプログラムは、シェルスクリプトやruby/pythonなど動的型付き言語で書くことが多い
3. 拡張していくうちに、これ以上長くなったら静的型付き言語で書いた方が楽そうだと思ったら、まるまる静的型付き言語で書き直す。
では、長くならない場合は?
シェルスクリプトやrubyもpythonを使うんだろw
668デフォルトの名無しさん
2018/09/04(火) 22:15:09.44ID:ROt4XEkp >>665
> 常にその原則を守ってるわけでもなくて、不特定ユーザーに配布するスクリプトではBourne shellで3000行ぐらいのをメンテしてたりもする。
小さく分けようぜw
ファイルを分けたり、関数にすりゃ、
たった3000行なんて十分メンテ可能だろ
> 常にその原則を守ってるわけでもなくて、不特定ユーザーに配布するスクリプトではBourne shellで3000行ぐらいのをメンテしてたりもする。
小さく分けようぜw
ファイルを分けたり、関数にすりゃ、
たった3000行なんて十分メンテ可能だろ
669デフォルトの名無しさん
2018/09/04(火) 22:15:31.25ID:dB7ca3M3 やはりワッチョイいるな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】2026年北中米W杯の組み合わせが決定! 日本代表はオランダ、チュニジア、欧州プレーオフB勝者と同組で激突★3 [冬月記者★]
- 渡邊渚「性を売ってるくせに」批判に反論 幻滅「これが日本の現状だよなー」「『渾身の下着!』というような意味でやってない」★3 [Ailuropoda melanoleuca★]
- 【鮭】20代女性の車のドアノブに体液、不同意わいせつ未遂の容疑で広島市安佐北区の30歳無職男を逮捕 [nita★]
- 鈴木農相、地元JAから借入金 おこめ券巡り利害誘導との批判も★2 [安倍聖帝★]
- 【芸能】批判招いた「ドラゴンボールストア」イラスト問題に原作編集者マシリト氏が厳しく言及 問題点指摘 [湛然★]
- 米国、ホワイトカラーよりブルーカラーが重視される社会になってしまう、AIの影響で25年大卒者は就職難に直面 ★2 [お断り★]
- 【NHK他】FIFAワールドカップ2026 はじまらない組み合わせ抽選★4
- 競輪実況★1620
- とらせんIP ★2
- ハム専 サヨナラ石井
- こいせん 全レス転載禁止
- 【フジテレビ】2025 FORMULA 1【NEXT】Lap611
- 食材となるものはな、罪があったから食材にされるんだよ
- なんで魚の缶詰はあるのに肉の缶詰はないんやろ
- 【高市悲報】プリキュア「いま私たちは環境問題に関心があるの」 プリオタ「ギェェェェェ思想が強すぎる!!」大炎上🔥 [762037879]
- 「あ、畳か」→画像を削除する→何も書き込まずにスレを閉じる
- 3大もう違法にしたほうがいいモノ「撮り鉄」「お酒」
- 今はもう動かないおじいさんにトドメ~
