タグ

code-reviewに関するsomathorのブックマーク (22)

  • コードの健全性: 礼儀正しいレビュー == 役立つレビュー

    .app 1 .dev 1 #11WeeksOfAndroid 13 #11WeeksOfAndroid Android TV 1 #Android11 3 #DevFest16 1 #DevFest17 1 #DevFest18 1 #DevFest19 1 #DevFest20 1 #DevFest21 1 #DevFest22 1 #DevFest23 1 #hack4jp 3 11 weeks of Android 2 A MESSAGE FROM OUR CEO 1 A/B Testing 1 A4A 4 Accelerator 6 Accessibility 1 accuracy 1 Actions on Google 16 Activation Atlas 1 address validation API 1 Addy Osmani 1 ADK 2 AdMob 32 Ads

    コードの健全性: 礼儀正しいレビュー == 役立つレビュー
  • "クソコード"は人格攻撃ではないのか|qsona

    これは仮説というか自分がこうだという話なのだが、自分のアイデンティティを侵されると怒りが湧く。たとえば、自分が非常に大事にしている価値観に対して、同僚から「君のその価値観は間違っている」と言われたり、あるいは、作品とか、経歴とか、家族とか、そういう自分自身と非常に密になっていて同一視されるようなものをけなされたら、腹が立つということだ。 プログラマーにとって、ソースコードというのは一つの作品だ。仮に経験が浅い開発者であっても、あるいは経験が浅いからこそ、1行1行に時間をかけて考えながら作りあげる。それに対してこれはクソコードだと言われたらどうだろうか。考えてみる。 よく、クソコードというのはコードがクソだと言っているのであって、お前がクソだと言ってるわけではないから切り離して考えるべきだという言説がある。僕はこれには微妙に賛同できない。その人が生み出したコードは、少なくともその人のいくぶ

    "クソコード"は人格攻撃ではないのか|qsona
  • コードレビュー ありがちな問題への対処例 - Crieit

    コードレビュー、これまでいろんなプロジェクトで経験して、意外と使われていないノウハウがあったり、風習が違ってつらみがあったりしたので、いろいろまとめてみる。 指摘事項について よくある話 - 駄目コードを憎んで人を憎まず。駄目なのはコードであって人格じゃない - 指摘する人は人格攻撃せずにコードのどこが悪いのかを指摘しましょう - 指摘される人も、言われているのはコードの問題であって人間の問題じゃないので、素直な心で受け止めよう この辺はみんな知ってると思うので略。ぼくが思う大事なルール コードレビューで指摘された内容は、対応必須ではない 理由: 対応必須にすると、「これ言ったらリリースできなくなるよね」みたいな忖度が発生してコメントできない人が出現するから。 絶対ダメとは言わないけど、あまりよくはない、みたいな指摘については、そのときは急ぐからリリースするけど、次回から気をつけるとかがあ

    コードレビュー ありがちな問題への対処例 - Crieit
  • SonarQubeでソースコードの静的解析とレビューを自動化してみる(前編) | DevelopersIO

    SonarQubeServerの構築 それではさっそくSonarQubeの環境を構築していきます! まずはEC2上にSonarQubeServerを構築してみます。 今回は下記のような環境を構築していきます。 インスタンスタイプ:t2.medium OS:Amazon Linux2 DB:postgresql-9.2.23-3.amzn2.x86_64 JDK:openjdk:1.8.0_171 SonarQube:7.2.1 EC2インスタンスの作成 手順は省略します。 GIPを割り当てつつ、セキュリティグループで22,9000ポートを解放しておいておいて下さい。 Postgresのインストールと初期設定 作成したEC2にまずPostgresのインストールを行います。 sudo yum install postgresql-server sudo systemctl enable pos

    SonarQubeでソースコードの静的解析とレビューを自動化してみる(前編) | DevelopersIO
  • コードレビューにおけるレビュアー側のアンチパターン

    tl;drコードレビューが上手く回って無くてチームが疲弊して辛かったよレビュアーの言い方を変えるだけで大体解決するよ立場とかで例外を許さず、みんながレビューしてレビューされると良いよはじめにあるプロジェクトGitHubのPRベースでのコードレビューを導入をしました。いかんせんチーム開発が初めてレベルの新人さんが多く、何かと苦労しました。特にレビュイーに対して不効率な指摘はそのまま指示の不明確さに繋がり、チーム全体の開発生産性を下げるので、レビュアーはレビュイー以上に気を使う必要があると感じました。下手をすると、レビュイーのメンタルが弱って闇堕ちするので、チームメンバーの最も大人な人がメンタルケアしたりします。大人な人は大体がリーダー格なので、その人の時間が奪われると何かと開発現場が疲弊しちゃいますね。コードレビューってそんなに難しいものだっけと思ったりもしますが、反省の意味も込めて実際に

    コードレビューにおけるレビュアー側のアンチパターン
  • WebKit ソースコードのコメント議論(1)

    WebKit 開発者のメーリングリスト webkit-dev を見ていたら、興味深い話題で盛り上がっていた。WebKit のソースコードや ChangeLog のコメントに関する議論だ。 WebKit に限らず、ハッカーというのはソースコードにコメントを書きたがらない。 コメントが古くなってしまい、実情と合わなくなってしまうから、というのが理由としてはよく聞かれる。すぐ古くなってしまうコメントを書くより、元々コメントを書かなくて済むような綺麗なコードを書けよ、とハッカー達はよく言う。 個人的には、コードでは処理の内容は記述できるけれど、意図を記述できないので、意図を補足するコメントぐらいは必要なんじゃないか、と思っているけれども、それすらダメと言う人も時々見かける。 ともかく、今回の議論は自分にとっては興味深かった。 そこでその内容を紹介してみようと思う。 議論はいくつかのトピックに分かれ

  • reviewdog を飼ってコードレビューや開発を改善しませんか - haya14busa

    GitHub: haya14busa/reviewdog: A code review dog who keeps your codebase healthy 英語記事: reviewdog — A code review dog who keeps your codebase healthy – Medium reviewdog というlinter などのチェックツールの結果を自動で GitHub の Pull Request にコメントしたり, ローカルでも diff の結果から新たに導入されたエラーだけを表示するようにフィルタリングできるツールを作りました. 英語記事 を Medium に書いたし,README も書いたので 日語記事はまぁいらないかなぁと思ったけど,柄にもなく Vim 関連以外で普通に便利ツールを書いてしまって,これは日語でも簡単に共有しようかなぁと思いこの記事

    reviewdog を飼ってコードレビューや開発を改善しませんか - haya14busa
  • コードレビューの高まった言葉 - 職質アンチパターン

    ブログ間違った,普段こういう事はこっちに書いてます. http://moznion.hatenadiary.com 最近自分がコードレビューで使いがち,あるいは表立って使ってないんだけど内心評す時に使う言葉が色々とあり,まとめてみることとした.参考にしない方が良いと思う. 左は言葉,右は説明. 屈強 - コードが力強い時に使う.例えば長い一枚スクリプトとか,コメントが一切ないバッチ処理とか.やや批判的な意味合いで使うことが多い. マッチョ - 屈強と同じ文脈で使いがち 屈強だけどしなやか - 屈強だけどしなやかな時に使う.好意的な屈強さと言える. モノリス - 長大なトランザクションスクリプト見た時とかに使う.やや批判的. 言い訳ないですか - 後で直していくぞ! というメンタルの時に書かれたコードのコメントが案外少ない時に使う言葉.言い訳は無いよりあった方が良い.実際には「もうちょっと言

    コードレビューの高まった言葉 - 職質アンチパターン
  • ソシャゲエンジニアの自分がコードレビュー時に重視する箇所33選 【随時追加】 - Qiita

    コードレビューで土日に安寧を ソーシャルゲームは、ユーザアクセス集中と、それに伴うユーザデータ増加によって劇的に負荷が上がり、(主に土日に)サービスに影響を与えがちです。 問題があるコードは、たとえ負荷テストを行っても、作成したシナリオによっては見つけられない可能性もあります。 そういった見えない不安を払拭するという意味でも、コードレビューは重要だと思っています。 【ステキポイント】 ・ ソースを見ることにより、時限爆弾が土日に爆発するのを解除 ・ スキル共有によってメンバーがレベルアップすることにより、土日に爆発する時限爆弾の設置確率低下 まぁまとめると これに尽きます(4歳の息子談) 今は、gitのプルリクエストという強力なレビューツールもあり、敷居がかなり低くなったのでオススメです! チェックするポイントは5つ コードレビューを行うにあたり、「どんなところをチェックすればいいのか分か

    ソシャゲエンジニアの自分がコードレビュー時に重視する箇所33選 【随時追加】 - Qiita
  • すごく長い行を読む場合の注意点 - Qiita

    Goで 1行 1行読み取って処理をしたいときは, bufio.Scannerを使うのが推奨されています. しかし bufio.Scannerにはひとつ欠点があり, 長すぎる行が読めないという問題があります. 最長で MaxScanTokenSize(64 * 1024)バイトしか読めず, これ以上長い行を読ませようとするとエラーが返ります. この値は constで定義されているため変更できません. また NewScanner的な関数の引数にサイズを与えて独自のバッファサイズを設定するということもできません. そのため長い行を読む場合は今のところ bufio.Scannerを使うことはできません. 追記 開発版には bufio.Scanner.Buffer()メソッドが追加され, ユーザ定義のバッファが Scannerに設定できるようです. これを使えば上限がわかる場合は Scannerだけ

    すごく長い行を読む場合の注意点 - Qiita
  • Linus Torvals、クソコードにブチギレ

    Linux-Kernel Archive: Re: [GIT] Networking Linus TorvalsがGCCの独自拡張を使った整数演算のオーバーフロー検知コードがあまりにクソすぎるためにブチギレしている。 On Wed, Oct 28, 2015 at 3:32 PM, David Miller <davem@xxxxxxxxxxxxx> wrote: リリースサイクルのこの後半に入れるのはちょっと怖いと思われるかもしれないが、小規模なドライバーの修正をあちこちに施しただけだよ。 マジかよテメーら、こりゃクソだ。 コンフリクトはGCCの新しいクソヘッダーファイルのせいなんだが、俺がブチギレてるのはそこじゃなくてこいつがクソなせいだ。 net/ipv6/ip6_output.cの以前のコードはこれだ。 mtu -= hlen + sizeof(struct frag_hdr);

  • グーグルのバグ予測アルゴリズムを実装したツール「bugspots」について - Qiita

    bugspotsはgoogleが開発した、バグ予測アルゴリズムをオープンソースとして開発されたツールです。 細かい説明は後にまとめますが、実際に使ったのを見るほうが分かりやすいので早速使ってみます。 実際に使ってみる 1.bugspotsをgemでインストール 3.結果を見てみる このHotspotsの下に出力されている左の数値がバグが起こりやすい度合いを表すスコア、右が対象のファイルになる。 メチャクチャ簡単に導入できるので、 リファクタやコードレビューなどで目星をつけるという意味では有用なツールな気がしました。 背景の説明 googleでは、チェックイン前にユニットテストやコードレビューが行われているが、コードが大量になってくると、ユニットテストやコードレビューをすり抜けたバグも少なからず発生してします。 googleではこの問題に対処するために、独自の「バグ予測アルゴリズム」を採用し

    グーグルのバグ予測アルゴリズムを実装したツール「bugspots」について - Qiita
  • 品質におけるコメントの役割。あるいは、レビューとコメント - きしだのHatena

    昨日のエントリでも書いたきょんくんとの会話なんだけど、なんとなく、コメントとテストは同じように扱えるんではないかという認識のもとで話がすすんでた。もちろん、コメント書けばテスト書かなくていいとかそういうのではなくて。 テストは、書きやすい対象と書きにくい対象がある。関数的に計算を行うコードの場合はテストが書きやすい。一方で、関数的ではなく副作用のあるコードはテストが書きにくい。データベースを扱ったり通信したりUIがあったり。 そして、そのようなテストを書きにくいときに、コメントはテストのように品質のために使えるんではないか。 で、問題は、どのように品質のために使うかということなんだけど、コードレビューのときの指針として使えばいいんじゃないかなと思った。 コードレビューのとき、コードだけを見ていると、名前付けとかコードの順番とか条件文の使い方とか、体裁的なものだけのレビューになりがち。そこで

    品質におけるコメントの役割。あるいは、レビューとコメント - きしだのHatena
  • バグを増やさないためにコードレビューのチェックリストを使う | Yakst

    チーム内で良くある間違いなどをチェックリストにし、それをコードレビュー時に使う事で、コード自体のレベルを上げつつコードレビューの品質のばらつきをなくす取り組みについて。Trelloなどを開発するFog Creek社のブログの翻訳。 効果的なコードレビューについて書いた我々のブログ記事の中で、チェックリストを使う事を推奨した。チェックリストを使う事で、レビューが継続的にチーム全体でうまくはたらくようにできる。また、ありがちな問題を見つけたり解決したりするのを確実にする、簡単な方法でもある。 ソフトウェア工学研究所の研究によると、プログラマは15から20の良くある間違いをしてしまいがちだという。そういった間違いをチェックリストに追加しておく事で、問題が起こった時にそれを特定し、確実に駆逐するようにできる。 チェックリスト作りに取り掛かるに当たって、一般的な項目は以下のリストのようになるだろう。

    バグを増やさないためにコードレビューのチェックリストを使う | Yakst
  • コードレビューの話

    新卒エンジニア向けにコードレビューを「する」話をしました。 http://hisaichi5518.hatenablog.jp/entry/2014/10/29/165721

    コードレビューの話
  • コードレビューガイドライン #loupestudy

    株式会社LOUPEの社内勉強会です。 http://lo-upe.hatenablog.com/entry/loupestudy-codereview (参考) 眼鏡なしのコードレビュー http://postd.cc/code-review-without-your-glasses/ …

    コードレビューガイドライン #loupestudy
  • コードレビューをしよう - ppworks.jp

    Sendagaya.rb #86 - Sendagaya.rb | Doorkeeperに参加してコードレビューについて思うところをみんなでディスカッションしたので、自分の思いをまとめておきます。(ポエム) ソニックガーデンの @mah_labさんのスライドにある7つの秘訣に同意です基。あと、github上のプルリクでコードレビューするという前提でまとめます。 1. レビューの観点を明確に いま何の話をすべきかという状況を判断して、どの観点で物を言うのかっていうのはコードレビューだけに限らず打ち合わせ時にも大事ですね。今この観点で議論を進めますよ!ということを表明することで齟齬が防げます。 観点が明確だと議論のテーマが明確になるので、コードレビューで修正すべき点も分かりやすくなりますね。 コーディング規約の観点 セキュリティの観点 メンテンスの観点 設計の観点 リリース前にこれで出来るレ

    コードレビューをしよう - ppworks.jp
  • まずコードの可読性を最適化しよう | POSTD

    最近では 最適化 という言葉を使う場合、GPUメモリ消費やネットワークトラフィックの最適化、などと明示的に言わない限りは、 実行時間の最適化 という意味で使われるケースがほとんどです。 自分が何を最適化しようとしているかを知ろう 私がプログラムを始めた頃、プロセッサの処理能力は遅く、メモリサイズもとても限られていて、キロバイト単位で計算されていました。ですからメモリ容量をよく考え、メモリ消費を上手に最適化しなくてはなりませんでした。大学では最適化について2つの極論を教わりました。 メモリを犠牲にして実行スピードを最適化する。 または何度も計算を繰り返して、メモリ消費を最適化する。 最近では誰もメモリについては大して気にしていません(デモシーン製作者、組み込みシステムのエンジニア、一部の携帯電話ゲームのディベロッパなどは別です)。RAMだけでなく、ハードディスクの容量についても同様です。 W

    まずコードの可読性を最適化しよう | POSTD
  • ペアプログラミング学習における状態の推定――つまずきの解決の成功と失敗に見られる会話の違い | CiNii Research

    タイトル別名 ペアプログラミング ガクシュウ ニ オケル ジョウタイ ノ スイテイ : ツマズキ ノ カイケツ ノ セイコウ ト シッパイ ニ ミラレル カイワ ノ チガイ Collaboration Estimation in Pair-programming Learning: Conversation Differences between Success and Failure in Problem Solving プログラミング教育では,プログラム言語の文法やプログラム書法を理解する能力とアルゴリズムを組み立てる能力が要求される.プログラム言語の文法や簡単な例題を理解することができても,実際にプログラムを作成するときにはいくつかのつまずきが発生する.プログラミングを行う方法の1つとして,2人1組になって行うペアプログラミングがある.ペアプログラミングによるプログラミングは協調作業

  • モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita

    はじめに 他の人が書いたコードを読んでいるときに時々気になるのが、英語の間違いです。 特に動詞、名詞、形容詞の使い分けが間違っていたりすると、かなり違和感を感じます。 そこで今回はモデル(=クラス)やメソッドに名前を付けるときの基的な原則をまとめてみます。 また、英文法的に正しい品詞が選べるようになるための習慣についても最後に説明します。 想定する言語/フレームワーク この記事の説明ではRuby/Ruby on Railsを想定しています。 ただし、基的な考え方は他の言語でも同じように使えるはずです。 モデルの名前は名詞にする 例: 「支払い情報」を表すモデルを作りたい場合 × Pay ○ Payment 「支払う = payか。よし。」でモデルを作ってはいけません! payは動詞で、payの名詞形がpaymentです。 Payモデルではなく、Paymentモデルを作りましょう。 例:

    モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita