アカウント名:
パスワード:
ソースコードをざっと眺めました.第一印象としては- ソースコードが冗長.長い!- コメントが英語で書かれているが文法の誤りが多い点が気になりました
たとえばhttp://ja.softether.org/@api/deki/files/679/=sourcecode.png [softether.org]に例示されているたった20行のソースコードでもIPV4_GET_FLAGS(ip) & 0x01 を直接評価する行もあれば,その後 last_packet 変数に代入する行もあったりで全体的に冗長です
プロトコルやパケットは実装側のことも考えてデザインされているので,そのデザインを正しく理解できれば,多分ソースコードは今の半分ぐらいの行数で簡潔に実装出来ると思います
- コメントが英語で書かれているが文法の誤りが多い
これについては、今回の公開に当たり英訳したそうなので、ある程度は仕方ないことだと思います。
なぜ公開まで時間がかかったかというと、専ら、コメント部分だけで数万行ある日本語を英語に翻訳するのに半年もかかったためである。工学博士の人がやって半年もかかったのであるから、普通の人がやると数年かかる。
コメント部分が日本語でも良いから公開してほしいというご意見もあったが、そういう訳にはいかないのである。それは、たとえば我々日本人がダウンロードした C の難解なコードのコメントが簡体字やヘンなアラビア語で書かれていたら読む気を無くすことから考えて当然である。
コメントの多言語対応系があれば嬉しいと思ってみた。
評論家は偉大なり。自分で作れずとも批評ができるから。
匿名の臆病者は偉大なり。自分でソースが読めずとも批判ができるから。
公表されてから今までの短時間で冗長な大規模コードを「ざっと見て」ある程度の判断ができる時点でプログラムのできる人だと推測できるのですが。少なくとも自分には(読むのも書くのも)無理です。
よく見なきゃダメだろ?あなたは「Anonymous Coward」。対して、元コメントは「anonymous coward」というID持ち。
※私もAnonymous Coward
なんで、ソースをざっくり変えてくれるんですよ……期待しています > anonymous coward
よく見なきゃダメだよ。揚げ足とってすまんけど、わざわざ名前を間違えるのは失礼だよ> by annoymouse coward
ソースレビュー全否定?
「ボクなら半分で書けるもん」をソースレビューとは言わない。
そもそも、SoftEtherくらい大きなソフトウェアをコードレビューしてコード汚いだとか冗長だとか細部の体裁の指摘に走るあたりがピント外れというか…。
この人の書いたコードって、短いけど読みにくそう。
半分とか大きく出たよなと思うわ。流石にじゃあやってみなと言いたいレベル。コメント削ってほら半分とかじゃないこと願うよ。
>半分とか大きく出たよなと思うわ。流石にじゃあやってみなと言いたいレベル。
当然、ソースコードを読んだ上で発言してるのですよね。
# 出る杭を叩くだけのACの多さに辟易する今日このごろ。
ソースコードにケチをつけるだけの人を「出る杭」とは褒め過ぎだと思う。
少なくとも例に出ていた20行のコードを見ても、#2522684で書かれている通り、『同一のものを複数(この場合は2つ)の表現で記述』していますから、『冗長だ』『分かり辛い』と思われても仕方がないかと。# それ以外にも、直値を出している時点で危険な気がしますけど…。
#2522684のannoymouse cowardさんがどのようなコードを書かれるか知らないのですが、該当箇所については、より読みやすい事が期待できる気がします。# ソースをまだ見てませんので、半分になるかどうかは不明ですが。
# 短くすると読みづらいと言う妄想を捨てると幸せになれるかも知れませんよ。# もちろん長ければ良いと言うものでもありません。# 何にせよ『分かりやすくて読みやすいのが一番』です。
期待してます。来週くらいにはできますよね?
現時点で来週ぐらいに出来ると見積もれるのであれば、あなたの方が適任では?
エンドユーザー「」
gitなんで、Forkして普通に修正してPull Req送ってもいいのですよ?
案の定ツリー荒れてますね…。
僕にもわかった!ここ冗長!みたいなコーディングの指摘1箇所でもって「多分ソースコードは今の半分ぐらいの行数で簡潔に実装出来ると思います」と豪語されたら、経験的にアチャーと感じる人たちは多いでしょうな。
そうですね。でも、もし高い確度で「出来ると思います」と言えるだけのソースに目を通していても、ここに例としてあげるのは、外からよく目立つ部分だけになるのでは。
だから、「指摘1箇所でもって(中略)豪語されたら」ではないかも。
・・・と考えましょうよ。
このツリー大本のIDはなんでも煽っていくスタイルの困った方なんで、そこも吟味しなさいな。
>このツリー大本のIDはなんでも煽っていくスタイルの困った方なんで、そこも吟味しなさいな。
結構大きくなったこのツリーだが、実際にコードを読んだうえで発言したのは、その大本のIDだけなのだが、このことをどう思うか?
× 実際にコードを読んだうえで発言したのは、その大本のIDだけ○ 実際にコードを読んだと言い張っているのは、その大本のIDだけ
同感です。アイデアをもとに具体的なコードを書いたのですから、はじめに具体化したことへの敬意があってもいいかな、と思います。
文法の誤りなんかいちいち気にしてたら英語のOSSプロジェクトにcontributeなんかできねえよ! (血涙どうせ読む方だって英語ネイティブとは限らないからいいんだよ! (開き直り
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell
ソースコードを読んでみた (スコア:5, 興味深い)
ソースコードをざっと眺めました.第一印象としては
- ソースコードが冗長.長い!
- コメントが英語で書かれているが文法の誤りが多い
点が気になりました
たとえば
http://ja.softether.org/@api/deki/files/679/=sourcecode.png [softether.org]
に例示されているたった20行のソースコードでも
IPV4_GET_FLAGS(ip) & 0x01 を直接評価する行もあれば,その後 last_packet 変数に代入する行もあったりで
全体的に冗長です
プロトコルやパケットは実装側のことも考えてデザインされているので,
そのデザインを正しく理解できれば,多分ソースコードは今の半分ぐらいの行数で簡潔に実装出来ると思います
Re:ソースコードを読んでみた (スコア:4, 参考になる)
- コメントが英語で書かれているが文法の誤りが多い
これについては、今回の公開に当たり英訳したそうなので、ある程度は仕方ないことだと思います。
Twitter / dnobori: なぜ公開まで時間がかかったかというと、専ら、コメント部分だけ ... [twitter.com]
Twitter / dnobori: コメント部分が日本語でも良いから公開してほしいというご意見も ... [twitter.com]
Re:ソースコードを読んでみた (スコア:1)
コメントの多言語対応系があれば嬉しいと思ってみた。
Re: (スコア:0)
工学博士の割には工学的センスに欠けてるような
Re: (スコア:0)
評論家は偉大なり。自分で作れずとも批評ができるから。
Re:ソースコードを読んでみた (スコア:1)
匿名の臆病者は偉大なり。自分でソースが読めずとも批判ができるから。
公表されてから今までの短時間で冗長な大規模コードを「ざっと見て」
ある程度の判断ができる時点でプログラムのできる人だと推測できるのですが。
少なくとも自分には(読むのも書くのも)無理です。
Re:ソースコードを読んでみた (スコア:1)
例えば、IPV4_GET_OFFSET(ip)が0でなくて、IPV4_GET_FLAGS(ip)の1ビット目のフラグが立ってる場合、
「フラグメントが起こっていない」にもかかわらず「フラグメント中のどこか途中」という
矛盾のあるパケットを意味しそうですが、そのエラーチェックはありませんね。
IPは詳しくないので、そういう不正な(?)パケットの処理をどうすべきか正確には分かりませんが、もやもやします。
他の部分との兼ね合いで絶対に起こらないのであれば、両方をチェックする必要はありませんし。
あとは、0x01を何かの定数にしておいて欲しいな、とかも。
とにもかくにも動作するすごい者を作れる人はすごいんですが、
作ったあとのメンテナンス性やらなにやらと、プログラミング坂はそこからもまだまだ長いので。
Re: (スコア:0)
よく見なきゃダメだろ?
あなたは「Anonymous Coward」。対して、元コメントは「anonymous coward」というID持ち。
※私もAnonymous Coward
なんで、ソースをざっくり変えてくれるんですよ……期待しています > anonymous coward
Re: (スコア:0)
よく見なきゃダメだよ。
揚げ足とってすまんけど、わざわざ名前を間違えるのは失礼だよ
> by annoymouse coward
Re: (スコア:0)
ソースレビュー全否定?
Re: (スコア:0)
「ボクなら半分で書けるもん」をソースレビューとは言わない。
Re: (スコア:0)
そもそも、SoftEtherくらい大きなソフトウェアをコードレビューして
コード汚いだとか冗長だとか細部の体裁の指摘に走るあたりがピント外れというか…。
Re: (スコア:0)
この人の書いたコードって、短いけど読みにくそう。
Re: (スコア:0)
半分とか大きく出たよなと思うわ。流石にじゃあやってみなと言いたいレベル。
コメント削ってほら半分とかじゃないこと願うよ。
Re: (スコア:0)
>半分とか大きく出たよなと思うわ。流石にじゃあやってみなと言いたいレベル。
当然、ソースコードを読んだ上で発言してるのですよね。
# 出る杭を叩くだけのACの多さに辟易する今日このごろ。
Re: (スコア:0)
ソースコードにケチをつけるだけの人を「出る杭」とは褒め過ぎだと思う。
Re: (スコア:0)
少なくとも例に出ていた20行のコードを見ても、#2522684で書かれている通り、
『同一のものを複数(この場合は2つ)の表現で記述』していますから、『冗長だ』
『分かり辛い』と思われても仕方がないかと。
# それ以外にも、直値を出している時点で危険な気がしますけど…。
#2522684のannoymouse cowardさんがどのようなコードを書かれるか知らない
のですが、該当箇所については、より読みやすい事が期待できる気がします。
# ソースをまだ見てませんので、半分になるかどうかは不明ですが。
# 短くすると読みづらいと言う妄想を捨てると幸せになれるかも知れませんよ。
# もちろん長ければ良いと言うものでもありません。
# 何にせよ『分かりやすくて読みやすいのが一番』です。
Re: (スコア:0)
期待してます。
来週くらいにはできますよね?
Re: (スコア:0)
現時点で来週ぐらいに出来ると見積もれるのであれば、あなたの方が適任では?
Re: (スコア:0)
エンドユーザー「」
Re: (スコア:0)
gitなんで、Forkして普通に修正してPull Req送ってもいいのですよ?
Re: (スコア:0)
案の定ツリー荒れてますね…。
僕にもわかった!ここ冗長!みたいなコーディングの指摘1箇所でもって
「多分ソースコードは今の半分ぐらいの行数で簡潔に実装出来ると思います」
と豪語されたら、経験的にアチャーと感じる人たちは多いでしょうな。
Re: (スコア:0)
そうですね。
でも、もし高い確度で「出来ると思います」と言えるだけのソースに目を通していても、
ここに例としてあげるのは、外からよく目立つ部分だけになるのでは。
だから、「指摘1箇所でもって(中略)豪語されたら」ではないかも。
・・・と考えましょうよ。
Re: (スコア:0)
このツリー大本のIDはなんでも煽っていくスタイルの困った方なんで、そこも吟味しなさいな。
Re: (スコア:0)
>このツリー大本のIDはなんでも煽っていくスタイルの困った方なんで、そこも吟味しなさいな。
結構大きくなったこのツリーだが、
実際にコードを読んだうえで発言したのは、
その大本のIDだけなのだが、
このことをどう思うか?
Re: (スコア:0)
× 実際にコードを読んだうえで発言したのは、その大本のIDだけ
○ 実際にコードを読んだと言い張っているのは、その大本のIDだけ
Re: (スコア:0)
同感です。
アイデアをもとに具体的なコードを書いたのですから、
はじめに具体化したことへの敬意があってもいいかな、と思います。
Re: (スコア:0)
文法の誤りなんかいちいち気にしてたら英語のOSSプロジェクトにcontributeなんかできねえよ! (血涙
どうせ読む方だって英語ネイティブとは限らないからいいんだよ! (開き直り