タグ

programmingと開発に関するstealthinuのブックマーク (94)

  • もう初回コードレビューはAIに任せる時代になった - CodeRabbit -

    どんな人向けの記事? レビューによって心理的なダメージを受けやすい方 非エンジニアだが、エンジニアチームがどんな機能を作っているか知りたい方 業務が溜まっていて、レビューに割く時間を捻出するのに苦労している方 コピペできるコードも公開します 初回レビューをAIに任せると、いろんなロールの人の役に立つ レビューは得意ですか? 優秀なエンジニアしかいないチームであれば、PRは1トピックに絞って小さく明確なコミットによって作成され、適切な要約とともに提供されることでしょう。 しかし、実際にはいろいろな制約から、PRが想定よりずっと大きくなってしまったり、関連トピックと異なるコードが混じってしまうこともあります。 実際のところ、大きなPRを適切にレビューするのは難しいことです。また、自分が詳しくない領域のレビューを行わなければいけない機会もあります。 今回の記事は、レビューを作成してくれるAI C

    もう初回コードレビューはAIに任せる時代になった - CodeRabbit -
    stealthinu
    stealthinu 2024/05/31
    github actionsで自動でPRにコードレビューしてくれるサービス。OpenAI APIのみ自前で基本は無料。ブコメではクラウドサービスへコードを投げることへの反発が結構でている。
  • ChatGPTによるプログラム生成の可能性と限界(後編) - Qiita

    はじめに この記事では最近話題のChatGPTによってプログラムを生成する際のコツについて解説します。 前編はこちら https://qiita.com/autotaker1984/items/5b5ac8c01d11fbbbc4a7 コードを生成するのではなく、コードを生成する過程を生成する ChatGPTは言語モデルベースのAIです。言語モデルとは、お題(プロンプト)に沿った文章を生成するモデルです。それ以上でもそれ以下でもありません。 従ってなんらかの機能を実装してもらう際もいきなり「機能」から「コード」の生成だとあまり満足いく結果は得られません。 もちろんChatGPTはかなり博識なのでそれっぽいコードは出してきます。ただ、そのような生成の仕方だとChatGPTが学習したコードにかなり依存したものが出力されるため、実際のユースケースとはズレたものが生成されますし、生成物の著作権リス

    ChatGPTによるプログラム生成の可能性と限界(後編) - Qiita
    stealthinu
    stealthinu 2022/12/06
    うまく誘導することでChatGPTにシステム書かせることある程度可能という例。特にふだんあまり触らん分野に使うと有効そう。
  • Facebookが開発した圧縮アルゴリズムZstandardについて調べた(非常に高速)(今日から使えます) - Lambdaカクテル

    Common Lispの処理系であるSBCLをインストールしようとしたら、追加でlibzstd-develというのを新たに要求されるようになっていた。見るからに圧縮系のライブラリだけれど聞き慣れないのでちょっと調べてみた。 ちょろっと調べたところ、以下のことが分かった: Zstandard(ゼットスタンダード?)というのが正式な名前。 Facebookが開発した。 Deflateよりも速いことを主眼においている。 BSDライセンス。 Linuxカーネルまわりで使えるようになっているほか、一部のディストロではパッケージの圧縮フォーマットとして使われているようだ。 Webというよりはどちらかといえばバックエンド的な箇所で使われている印象がある。 facebook.github.io zstd コマンド使ってみた 他の名だたる圧縮アルゴリズム同様、Linuxで直接ファイルに対してこれを実行して圧

    Facebookが開発した圧縮アルゴリズムZstandardについて調べた(非常に高速)(今日から使えます) - Lambdaカクテル
    stealthinu
    stealthinu 2022/10/11
    zstdとう圧縮ツールが最近あるそうでgzipと同じくらいの圧縮性能だけど速度が段違いらしい。これは使えるかも。
  • PHPバージョンアップけもの道

    at "PHPバージョンアップ kickoff" 2021/07/15 https://breaktimes.connpass.com/event/218221/

    PHPバージョンアップけもの道
    stealthinu
    stealthinu 2021/07/16
    レガシーなPHPで書かれたシステムをバージョンアップする方法について。銀の弾丸はない、がんばることを手助けしてくれる手法はある、的な。
  • Rust入門

    プログラミング言語Rust入門です.なるべくわかりやすいように解説しました.公式ドキュメントを読んでみたけど,あまりよくわからなかったという人に向いているかもしれません. 誤字や間違いなどのご指摘は以下からコメントをお願いします. https://zenn.dev/mebiusbox/scraps/90bc293a07430d

    Rust入門
    stealthinu
    stealthinu 2021/03/16
    Rust入門本。無料で読める。これはよい。
  • 新卒1年目が荒れ果てた開発環境に1年間でCIを導入し単体テストを布教した話 - Qiita

    この記事は 「Develop fun!」を体現する Works Human Intelligence Advent Calendar 2020 21日目の記事です。 昨日の記事は@sparklingbabyさんのStream API がもっとわかる記事でした。 あらすじ 私は2019年にWorks Human Intelligence(正確には分社前の会社)に新卒入社し、 19年10月からプロダクト開発部門に配属され、SETエンジニアとしてとある製品のJava開発環境の改善に取り組んでいます。 ざっくりとプロダクト開発を紹介するとこんな感じです。 3万クラス程度ある大規模Java Webアプリケーション 開発環境はEclipseを使用 開発者のOSはWindowsのみ Before 私が開発チームに参加した時点では 部門として新規開発に注力しており、足下の環境改善をやる担当者がおらず、 い

    新卒1年目が荒れ果てた開発環境に1年間でCIを導入し単体テストを布教した話 - Qiita
    stealthinu
    stealthinu 2020/12/22
    これは相当馬力無いとできないわ… みんながやりたがらないような泥水すくうような作業。参考になるがその立場になったとしてもやりたくはない。
  • もしあなたが急にAndroidアプリを業務で作るはめになった場合の選択肢(2021年初頭版) - Qiita

    記事はAndroid Advent Calendar 2020の2020/12/01分です。 初っ端ということなので、2020年末と2021年頭でのAndroidエンジニアとして初めて業務でやる場合に抑えておいたほうが良い最低限の部分を書いていこうと思います。(ツッコミ待ちです) 対象 2021年3月ぐらいまでに !!業務!! でAndroidアプリを作らされる事になった可愛そうな人が居たとします この人は手続き型言語でオブジェクト指向プログラミングができる知識があり、Androidアプリもなんとなく趣味で作ったこともあるぐらいのレベル感です(なので上長からいきなりお前Android担当なと言われた) 最低限のAndroidアプリの作成の知識はあるものとします(画面の表示にはActivityがいるよとかは書かない) ゲームは対象外です 業務でAndroidアプリを作ることを想定しています

    もしあなたが急にAndroidアプリを業務で作るはめになった場合の選択肢(2021年初頭版) - Qiita
    stealthinu
    stealthinu 2020/12/02
    なんだろうこの本当に必要そうな情報の感じは。マルチプラットフォーム対応フレームワーク使うのは勧めないのか… うーむー。
  • コードレビューの目的と考え方 - osa_k’s diary

    まえがき コードレビューの目的 大目的 小目的 チェックリスト 優先度高(大きな損失を生む問題・後からの修正が困難な問題) 優先度中 優先度低(システムに大きな影響を与えない問題・後からの修正が容易な問題) レビューを負担にしないために レビューサイズのコントロール 誰がレビューをするか 議論をどうまとめるか 批判と個人攻撃 レビュワー向けアドバイス Code author向けアドバイス 参考文献 まえがき コードレビューの有効性が説かれるようになって久しい。しかし、コードレビューをするべきという観念ばかりが先立ってしまい、何のためにコードレビューをするのか、どのような点をレビューするべきなのかといった、目的や進め方に対する意識が曖昧なケースも数多くあるように思われる[6]。コードレビューの目的を理解せずに惰性でレビューしているだけでは、いずれレビューそのものが形骸化し、単に承認のハンコを

    コードレビューの目的と考え方 - osa_k’s diary
    stealthinu
    stealthinu 2020/10/19
    『コードレビューの主要な目的は書いたコードの内容を他のチームメンバーに理解してもらうこと』今までコードレビューについて間違った認識だった。不具合がないか確認作業という意識だった。
  • DI (依存性注入) って何のためにするのかわからない人向けに頑張って説明してみる - Qiita

    追記 2022/11/12 追記 この記事読んで、DI 便利だなって思ったらこちらも併せて読んでみてください。クリーンアーキテクチャーの開設の中で依存性逆転の説明が出てきます。難しいかもしれませんが、一度理解すればつぶしが効く考え方なので腰を据えて読んでみてください。 文 ここでは、最近のそこそこの規模のアプリだと大体使われてる(と私は思ってる)Dependency Injection(DI)について、何故使ってるのか?というのを私の理解で書いていきたいと思います。 今回の対象言語は C# ですが、DI 使ってる言語であれば大体同じ事情なのかなと思います。 単体テストしたいよね アプリケーションを作るとうまく動いているかテストをすると思います。 たとえ、そのアプリがハローワールドだとしても動かして目視で確認してると思います。 もうちょっとアプリの規模が大きくなってくるとクラス単位やクラス

    DI (依存性注入) って何のためにするのかわからない人向けに頑張って説明してみる - Qiita
    stealthinu
    stealthinu 2020/07/10
    DIってなんのために生まれたんだろ?と思ってはいた。やっぱ元々テストでの依存関係を解決するためのものって理解でいいんかな。
  • codic - プログラマーのためのネーミング辞書

    codicは、プログラマーのためのネーミング辞書です。新しいcodicでは、翻訳エンジンを搭載しネーミングをジェネレートできるようになりました。

    codic - プログラマーのためのネーミング辞書
    stealthinu
    stealthinu 2020/05/13
    開発時の名前付けを補助してくれるツール
  • 低レイヤを知りたい人のための Cコンパイラ作成入門

    はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム このには一冊のに盛り込むにはやや欲張りな内容を詰め込みました。書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 このでは、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう

    stealthinu
    stealthinu 2019/05/10
    なにこれすごい。rui314さんが書かれてるので間違いない内容。てかすごい。
  • 「悪い方が良い」原則と僕の体験談|Rui Ueyama

    ソフトウェアの世界には「悪い方が良い」原則という有名なエッセイがある。キレイにレイヤ分けされた一貫性のある良いデザインよりも、一見手抜きの悪いデザインのほうが実は良いときもあるという話だ。この逆説的なデザイン原則を僕は身をもって体験したことがある。それについてちょっと書いてみようと思う。 僕はlldというリンカの現行バージョンのオリジナル作者だ。リンカというのはコンパイラと組み合わせて使うもので、実行ファイルやDLLを作るのに使用される。lldはプロダクトとしてはかなり成功していて、標準のシステムリンカとして採用しているOSがいくつかあったり、GoogleやFacebookなど皆が知っているような大規模サイトの中で広く使われていたりする。 現在のlldは2世代目で、第1世代のlldは僕がプロジェクトに参加する前から存在していたのだけど、数年前にそれを捨てて一から書き直すということになった。

    「悪い方が良い」原則と僕の体験談|Rui Ueyama
    stealthinu
    stealthinu 2018/04/10
    『「賢いやり方」や〇〇原則といったものにこだわりすぎないこと。実装の単純さはとてもとても重要』
  • 「プロエンジニアになるための「アジャイル開発」再入門」が素晴らしい - プログラマの思索

    倉貫さんの資料プロエンジニアになるための「アジャイル開発」再入門が素晴らしいのでリンクしておく。 新入社員向けのアジャイル研修の資料は、これを使えば十分ではないかな、と思った。 以下はラフなメモ書き。 【研修資料】 【参考】 アジャイル開発とウォーターフォール型開発の違いについて再考: プログラマの思索 アジャイルとウォーターフォールは文化や価値観のレベルで異なるという話 - たなかこういちの開発ノート アジャイル開発の質 ? アジャイルとウォーターフォールの違いとは | Social Change! ソフトウェアは完成しても価値はない ? アジャイル開発は何を解決するのか | Social Change! アジャイル開発とは:「アジャイル開発」をエグゼクティブサマリにまとめてみた | Social Change! ドキュメントをなくしてもうまくいく? ? 人に依存するリスクへの対処とは

    「プロエンジニアになるための「アジャイル開発」再入門」が素晴らしい - プログラマの思索
    stealthinu
    stealthinu 2018/04/05
    アジャイルの理想が書いてある。がなかなかそうできない。それは契約の仕方から変えなければならないが、契約をする人たちは通常アジャイルに興味ないから。
  • 提案:エンジニアに気軽に「バグ」というのはやめませんか? - worker experienceの日記

    もしかしたら私だけかもしれないです。ずれているかもしれません。 一般論ではないかもしれません。 でも、同じような気持ちになっているエンジニアがいるかもしれないので、 代表して言わせてください。 エンジニアに、気軽に「バグ」と言うのをやめませんか? 最近立て続けに以下のようなことが起こっており、私と同僚が消耗しています。心がすり減ってます。ワーカーエクスペリエンスが低下しています。。。 ~~~~~~~~~~~~~~~~~~~ 「○○さん、この数値がバグなんだけど直してもらえる?」 →調べたらその週は祝日影響で、営業日が少ないだけだった。 「あのデータのバグはいつ直りますか?」 →データの集計定義の変更の依頼があり、変更前の状態をバグと呼ぶ 「この前入ってなかったバグなんだけど、次の開発に入れてもらっていい?」 →スコープ外のこと(担当がそれを忘れていた)をバグと呼ぶ ~~~~~~~~~~~~

    提案:エンジニアに気軽に「バグ」というのはやめませんか? - worker experienceの日記
    stealthinu
    stealthinu 2018/03/01
    あー、これはわかるわ。まあ言う方はそこまで意識してないんだろうけど。医者に風邪引いたって言って風邪かどうかの診断はこちらがするからってたしなめられるのと通じる感じか。
  • 技術選定の審美眼 / Understanding the Spiral of Technologies

    初演: 2018/02/15 デブサミ2018 15-D-1 ハッシュタグ: #devsumi #devsumiD https://togetter.com/li/1199564

    技術選定の審美眼 / Understanding the Spiral of Technologies
    stealthinu
    stealthinu 2018/02/20
    これはぼんやり思っていたことが言語化されたという感じ。さすがのまとめ。
  • 【今日からできる】コミットメッセージに 「プレフィックス」 をつけるだけで、開発効率が上がった話 - Qiita

    はじめに 今まで commit message を「なんとなく」書いていたが、プレフィックスをつけることで、コミットメッセージに対する考え方が変わった。 そのおかげで開発効率が上がったので、その内容をシェア。 プレフィックスをつけるってどういうこと? 以下のようにコミットメッセージの先頭に、なんらかの文字をつけること。 feat: xxx という機能を追加 fix: yyy で発生するバグを修正 refactor: zzz の機能をリファクタ のように feat, fix, refactor などがプレフィックスです。 最近 OSS の Contribution Guide などでよく見かけます。 導入したプレフィックスルール Angular.js/DEVELOPERS.md Angular.js の開発者ガイドに書いてあるメッセージを参考にしました。 以前のコミットメッセージ(例 ちなみ

    【今日からできる】コミットメッセージに 「プレフィックス」 をつけるだけで、開発効率が上がった話 - Qiita
    stealthinu
    stealthinu 2018/02/08
    コミットメッセージの頭にfeat:とかfix:とかなにの種別のコミットか付ける。ブ米でブランチ名のほうに付けるのが効果的という指摘も参考になる。
  • ニコニコ動画(く)リリース失敗に寄せて

    そういうわけなので今日は公開資料を中心にリリース失敗の技術的な要因を分析してみたいと思います。 Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 - QiitaドワンゴアカウントシステムはScalaのコードだけで22万行を越え、ドワンゴ社内で最大のScalaリポジトリとして知られています。 ドワンゴのユーザーアカウント基盤は明らかに破綻しています。 10 年以上にわたり、ガラケー時代から今に至るまで多くの業務をコードに落としていくことは極めて難しい作業であったと思います。そうはいってもやってるうちに一回なんとか出来なかったのかとは思うわけです。やっている当人たちがテンションを上げているほどには開発効率が出ていない、むしろ足を引っ張っているという可能性はかなり高いと思います。 ニコニコ生放送におけるdock

    ニコニコ動画(く)リリース失敗に寄せて
    stealthinu
    stealthinu 2017/11/30
    なかなか難しいわな… でも技術の問題というよりも(コストも含めて)どこにリソースを振り向けるべきだったかというマネージメントの問題だった気がする。
  • [速報]Java 9が正式リリース、Javaをモジュール化するProject Jigsawがついに実現。今後のJavaは6カ月ごとタイムベースのアップデートへ

    [速報]Java 9が正式リリース、Javaをモジュール化するProject Jigsawがついに実現。今後のJavaは6カ月ごとタイムベースのアップデートへ 米オラクルは9月21日(日時間9月22日未明)、Javaの最新バージョンとなるJava 9正式版を公開しました。 Java 9 is Out!!!!#JDK9 #Java9 #Javahttps://t.co/VE7BI4KPlK pic.twitter.com/kOdNiLJ1ky — Java (@java) 2017年9月21日 Java 9最大の新機能は「Project Jigsaw」として開発されたJavaのモジュール化機能です。おそらくJavaの開発のなかでももっとも難産なプロジェクトだったといえるでしょう。 難産の末にProject Jigsawがついに実現 Javaをモジュール化して必要な部分だけを使えるようにする

    [速報]Java 9が正式リリース、Javaをモジュール化するProject Jigsawがついに実現。今後のJavaは6カ月ごとタイムベースのアップデートへ
    stealthinu
    stealthinu 2017/09/22
    もうJava9か。なんかJava7以降は流れが早いな。
  • C2A0文字コードはUTF-8の半角スペース | ホームページ制作のサカエン Developer's Blog

    C2A0文字コードはUTF-8の半角スペースのことです。 とある案件で、データベース上に文字化けした値があったので、テキストに貼り付けてみるとスペースにしか見えませんでした。 スペースにしか見えないと思いつつ、文字化けする以上は何かあるだろうと文字コードを確認してみると、あれ? C2A0 と出ましたね。 むむむ、半角スペースは 20 のはずだが C2A0 とはこれいかに・・? ここでは C2A0文字コードについて解説 します。 調べていくと、どうやら C2A0 は UTF-8 の半角スペース というか NO-BREAK SPACE(ノーブレークスペース) というもので、HTMLでいう アンパサンド と同様の特殊文字でした。 文字通りそこでは改行しないスペースという意味で、通常の半角スペースとは別物です。 利用者に問い合わせたところ、どうやらどこかのサイトからコピペしたものがデータベース上に

    C2A0文字コードはUTF-8の半角スペース | ホームページ制作のサカエン Developer's Blog
    stealthinu
    stealthinu 2017/09/21
    C2A0問題。「 」は半角スペースの「20」じゃなく「C2A0」という別の文字コードになるのでぱっとみ同じでも違うデータになってしまう。
  • プログラマが「出来ません」と言う日 - megamouthの葬列

    長い間、フリーランスなどという「便利屋」をこなしていると、馴染みの顧客から、トラブったプロジェクトに急遽参画してほしいという、ヘルプ案件が入ってきたりする。 嫌かと言われるとそうでもなく、むしろ、恩を着せて(足元を見るとも言う)高単価を取るチャンスだし、案件が燃え上がっているのは他人のせいであり、途中から入る私は気楽なものなので、積極的に首をつっこむことにしている。 こう言うと颯爽と現れるスーパーマンのようでかっこいいのだが、そこはクソ雑魚フリーランスの私。トラブルの内容というのは、「安いWordpress業者に頼んだ案件で、途中で、(カスタマイズ要件)がやっぱり出来ないと言われた」とか「アプリが毎回メモリリークで5分で落ちるのだが、全く治る気配がない」とかそういう情けない話ばかりである。 共通して言えるのは、炎上させた業者が「(問題を解決することが)出来ません」とはっきり言ってしまってい

    プログラマが「出来ません」と言う日 - megamouthの葬列
    stealthinu
    stealthinu 2017/03/27
    うっわ、すっごいわかる。『こんな腐った物のためにgulp本体やプラグインのソースを読むなんてことは真っ平ごめん』ほんこれ。こんな腐ったもののためにコード書くの無意味じゃない?と思ってしまうよね。