並び順

ブックマーク数

期間指定

  • から
  • まで

281 - 320 件 / 1902件

新着順 人気順

リファクタリングの検索結果281 - 320 件 / 1902件

  • Objective-C のコードレビューチェックリスト - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 本稿は Juri Pakaste 氏による Cocoa review checklist (commit fff5703)の翻訳です。他人の Objective-C のコードをレビューするとき注意する点、また普段のコーディングで心がけるべき点についてまとめられています。 なお、原文のタイトルは Cocoa review checklist となっていますが、内容が Cocoa に限らない範囲のトピックをカバーしているため、本稿のタイトルは「Objective-C の〜」としました。 誤訳の指摘や例の補足を歓迎します。 コードレ

      Objective-C のコードレビューチェックリスト - Qiita
    • ドメイン駆動設計は何を解決する手法なのか - stmn tech blog

      こんにちは、リファクタリング大好きなミノ駆動です。 株式会社スタメンでは、企業エンゲージメント構築サービスTUNAG(ツナグ)の技術的負債解消と今後の持続的成長のため、ドメイン駆動設計(DDD)の導入を検討しています。 ところでDDDはとかく理解しづらく、何のためのDDDなんだという議論になりがちです。この記事では、DDDの真の主人公コアドメインを中心に、DDDが何を解決するものなのか、全体像を改めて整理します。 この記事で扱う内容 DDDが解決したい課題と解決方法の全体像。 この記事では扱わない内容 設計パターンの実例などの実装詳細。 大事な前提 〜利益を得るためのサービス開発 会社でのサービス開発は、趣味や道楽でやるものでしょうか。違いますね。ビジネスとして、企業活動としてサービス開発しています。当たり前の話ですが、利益を得られるように開発しなければなりません。 ドメイン駆動設計は、継

        ドメイン駆動設計は何を解決する手法なのか - stmn tech blog
      • テスト駆動開発:実はそれは設計技術です

        テスト駆動開発(TDD)は、より優れたソフトウェアを持続的に早く提供するための確立された手法です。TDDは単純な考えに基づいている。製品コードを書く前に失敗するテストを書くことです。新しい行動が必要ですか?失敗するテストを書いてください。しかし、この一見単純な考えをうまく実行するには、スキルと判断が必要です。 TDDは本当に設計のためのテクニックです。TDDの基礎は、小規模なテストを使用してボトムアップを早急に設計することであり、システムへの信頼を構築しながら迅速に何らかの価値を得ることです。よりよい名前はテスト駆動設計かもしれません。 設計方法としては、集中と単純さです。目標は、開発者が価値を提供する上で不要な余分なコードを書くことを防ぐことです。問題を解決するのに必要最小限のコードを書くことです。 多くの記事がTDDを行うことのすべての利点を誇りにしています。そして多くの技術会議の講演

          テスト駆動開発:実はそれは設計技術です
        • Software Design連載 2021年8月号 Python製のレガシー&大規模システムをどうリファクタリングするか - MonotaRO Tech Blog

          Software Design連載開始 ※ (2021/09/02 08:55) 「Pythonを用いて開発を始めたのが2003年」を「Pythonを用いて開発を始めたのが2002年」に修正 こんにちは。金谷です。 このたび、モノタロウにおけるPython大規模開発に関する取り組みを、技術評論社様で発刊されている Software Design に連載させていただくことになりました。 モノタロウがPythonを用いて開発を始めたのが2002年。2021年の現在もPythonを用いた開発が続けられています。 事業の成長に伴い、関連するシステムやエンジニアの数も増え続けていくなかで、いかに安定的に価値を提供し続けられるのか。 モノタロウにおける取り組みを、開発や運用周りを通してご紹介していきます。 本記事の初出は、 Software Design2021年8月号「Pythonモダン化計画(第1

            Software Design連載 2021年8月号 Python製のレガシー&大規模システムをどうリファクタリングするか - MonotaRO Tech Blog
          • あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ - Qiita

            Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? エンジニア組織を強くするための本を出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 はじめに この記事は数百万行の動的型付き言語のWebアプリケーションのリファ

              あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ - Qiita
            • Undo,Redoの実装って何十回もやってる気がする - あしあと日記

              undo,redoの実装って何十回もやってる気がする。毎回同じパターンだ。undo,redoが登場するような編集ソフトは大体同じパターンに落とせる。フレームワークも作った。ブログにそういう内容を書きたいが面倒くさい。需要があれば面倒でも書くんだけどなあ http://twitter.com/youpychan/status/994486992 という発言をしたら何人か反応を頂いたので書いてみることにする。 需要があるなら書こう。undo,redoだけじゃなくてグラフィカルな編集ソフト全般の話をいつかまとめたいと思っていたので、ちょいとシリーズで書いてみようかとおもう http://twitter.com/youpychan/status/994636764 書こうと思う。 まずUndo,Redoについて。 Unod,Redoってみなさんどういう風に実装しているでしょうか? 私はコマンドパタ

                Undo,Redoの実装って何十回もやってる気がする - あしあと日記
              • テストコードを作らない文化が浸透している現場へRuby/Railsが導入された結果への対策を考えてみる, tDiary 3.0.2 リリース - 会長@腹部日記(2011-04-29)

                _ テストコードを作らない文化が浸透している現場へRuby/Railsが導入された結果への対策を考えてみる まず、導入された結果は以下のようになっております。信じられないものもありますが、事実です。 1. マージが頻繁に行われる開発中はNoMethodErrorや文法エラーが続出。必要なコードのマージ漏れまで発生 2. 修正の度に人力テストが必要となり、コスト増大 3. これまで以上に責任論が追求される現場となる 4. コスト増加を恐れるあまりリファクタリングはおろか、巨大な迂回処理やコピペが横行する 本プロジェクトには、以下のようなテストコードを作(らない|れない)様々な原因があります。 問題分類 現場への影響

                • フロントエンドのリプレイスに、いつまでかけるんだ?

                  一時期Ruby on RailsのERB + jQueryベースのフロントエンドをReactやVueのモダンフロントエンドにリプレイスするのが流行りました。私も現場でこういう例を複数見ています。 しかしどれも途中で止まっています。半分にも届かないぐらいのところで "ERB + jQuery"だったものが "ERB + jQuery + React + Next.js"とか"ERB + jQuery + Vue"になっています。 複雑度はむしろ明確に増しています そこで、こういう結末が一般的なのかどうか、ウェブを検索して調べてみました。 タイミー社の例 Rails (多分ERB) + jQueryが出発点 30画面 Next.jsのSPAに移行 3年間かかった (2年弱の時点で一回中断) クックパッド社の例 2020年にRails (多分ERB) + CoffeeScript/jQueryを

                    フロントエンドのリプレイスに、いつまでかけるんだ?
                  • 開発メモ#3 : レガシーなCGIアプリケーションのリファクタリング - naoyaのはてなダイアリー

                    開発メモその3です。今回は Perl のおはなし。 何年も前に作ったウェブアプリケーションのコードを開いてみたら黒歴史なコードが出てきて憂鬱な気分になる、そんな経験ありませんか。私はあります。ずっとそんな現実から目を背けて生きてきました。 さて、先日 Perl + CGI で書いて Apache::Registry で高速化している、実行環境が Apache に癒着した CGIアプリケーションを発見しました。おえ〜っ。一から作り直したい気持ちをぐっと堪えて、これを Plack 化したりとリフォームしていくとしましょう。その過程を以下記します。劇的ビフォア・アフター! ・・・とかは期待せず、地道な変更を積み重ねていくのがコツです。 方針 いきなりコードをがりがり書き換えていくというよりは、試行錯誤のしやすい環境に移行させていきながらリフォームを進めます。遠回りですが、結果的にその後の運用が楽

                      開発メモ#3 : レガシーなCGIアプリケーションのリファクタリング - naoyaのはてなダイアリー
                    • 苦労して育てたPHPを捨てるメリットは? チャットワークに聞く(後編) | HRナビ by リクルート

                      増井さんが「今、気になる人」に直撃する連載。前編では、PHPの独自フレームワークで開発したチャットワークをScalaで刷新すると宣言したChatWorkの山本正喜CTOに、プロジェクトの進捗と、このプロジェクトがもたらした影響について聞きました。 後編では、チャットワークの未来像や、技術的負債を抱えないための方法論などについて、話を進めていきます。 苦労して育て上げたPHPを捨てるメリットとは? 増井:現行のシステムはまだPHPで動いてるんですよね? 山本:そうです。 増井:10万4000社が使っている大規模サービスなのに、特に大きな問題はないんですか? 山本:今は安定していますから問題はありません。でも3年ぐらい前までは、大きな障害を起こすことが度々あったので、正直、大丈夫とは言い切れない部分がありました。増井さんならよくご存じでしょうが、大規模なシステムでPHPを使う時には、気をつける

                        苦労して育てたPHPを捨てるメリットは? チャットワークに聞く(後編) | HRナビ by リクルート
                      • PHP で引数をそのまま返す関数を作っておくと便利 - IT戦記

                        PHP では以下のように new してすぐメソッドを呼べない <?php new DateTime()->getOffset(); なので、引数をそのまま返す関数を作ってやると <?php function expr($a) { return $a; } expr(new DateTime())->getOffset(); // OK! 便利だなー おまけ 配列アクセス用のも作っておくと便利 <?php function expr($a) { return $a; } function idx($array, $i) { return $array[$i]; } echo idx(idx(expr(new DateTimeZone('Asia/Tokyo'))->getTransitions(), 0), 'abbr') . "\n"; おまけ2 無名関数をそのまま呼ぶときにも使える。 <

                          PHP で引数をそのまま返す関数を作っておくと便利 - IT戦記
                        • シェルスクリプト リファクタリング ~遅いシェルスクリプトが供養されてたので蘇生して256倍に高速化させました~ - Qiita

                          Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに ことの始まりは「シェルスクリプトでツールを作ったけど速度が遅くて使い物にならなかったので供養」というツイートを見たからです。コードを見てみると、実例をあまり見ないシェルスクリプトのリファクタリング例として丁度良い内容と分量だったため記事にいたしました。記事を書くにあたりコードの利用を快く承諾していただいた @Hayao0819 様にはこの場を借りて御礼を申し上げます。 内容は章立てで構成しており、序章で事前調査をし、第一章で一般的なリファクタリング、第二章でパフォーマンスを重視したリファクタリング、終章で少し余談をして締めくく

                            シェルスクリプト リファクタリング ~遅いシェルスクリプトが供養されてたので蘇生して256倍に高速化させました~ - Qiita
                          • Git コミットメッセージのプラクティスまとめ - 酒と泪とRubyとRailsと

                            最近、自分のGitのコミットログを読み返してみたら、すごく分かりづらかったので勉強も兼ねて、Gitのコミットログのプラクティスを勉強してみました! 🐰 Gitのコミットメッセージの書き方次のサイトを参考にさせていただきつつ、簡単にまとめてみました! Gitのコミットメッセージの書き方 | プログラミング | POSTD Gitのコミットメッセージの書き方 - Qiita 書き方を知ることのメリットGitのコミットメッセージをわかりやすく残すことで、その変更どんな目的で具体的にどんなことを修正したかを 次の変更を行う人に伝えることができ、次の人の修正する時間を節約できる。 具体的にどんなことを書くべきかどのように変更を行ったかは、コードを見れば分かる。もしわからないのなら、コードにコメントを書くべき。 変更した理由を明らかにすることに焦点を絞り、変更前がどうで、何が問題で、今はどのように機

                              Git コミットメッセージのプラクティスまとめ - 酒と泪とRubyとRailsと
                            • サービスを停止せずにデータベースリファクタリングする - Pepabo Tech Portal

                              2022年7月13日にカラーミーショップで提供開始した「副管理者機能」のアップデートにあたって、従前の挙動を変えずにデータベーススキーマの構造を変える必要がありました。また、サービスの提供を停止することなく、スキーマの構造の変更を進める必要がありました。 この記事では、サービスを停止せずにデータベースの構造を徐々に変更するデータベースリファクタリングをどのように進めたかについて紹介します。 「データベースリファクタリング」とは データベースリファクタリングについて体系的に述べた書籍として"Refactoring Databases"があります。この本では、データベースリファクタリングのさまざまなパターンにおいて、スキーマの変更、データマイグレーション(既存データの移行)、アプリケーションの変更それぞれをどのように進めるべきかについて解説しています。ここでは、"Refactoring Dat

                                サービスを停止せずにデータベースリファクタリングする - Pepabo Tech Portal
                              • Martin Fowler's Bliki in Japanese - FrontPage

                                ここは、Martin Fowler's Bliki の翻訳Wikiです。 Martin Fowler氏本人の許可を得て公開しています。 Wikiですので、どなたでも参加可能です。 ご自由にページの追加、修正、変更を行ってください。 まずは およみください をどうぞ。 ご意見は ご意見箱 までどうぞ。 ページ一覧からページをご覧いただけます。 まだ翻訳していないページは、InHandOrNotまたはKeywordListUntranslatedで確認できます。是非、「新規作成」してください ;-)。

                                • 大きな Rails アプリケーションをなんとかしよう。まずは計測と可視化からはじめよう。 - クックパッド開発者ブログ

                                  こんにちは、技術部開発基盤グループの id:hogelog です。 RubyKaigi 2018 楽しかったですね。僕はおそらく RubyKaigi 2010 以来の久しぶりの参加でした。ああいう場の楽しさを思い出し、また今回はスポンサーブースから RubyKaigi に参加するという学生の頃は知らなかった楽しみも新たに知り、RubyKaigi を満喫させていただきました。 さて今回はそんな RubyKaigi で取り戻した Ruby に対する感情と関係あるようなないような、最近自分が取り組んでいるお台場プロジェクトとプロジェクト内で実施している計測と可視化について紹介します。 お台場プロジェクトの発足 クックパッドの開発といえば数年前までは cookpad_all という一つのリポジトリの中に詰め込まれた巨大なモノリシック Rails アプリケーションを社内のエンジニアが寄ってたかって開

                                    大きな Rails アプリケーションをなんとかしよう。まずは計測と可視化からはじめよう。 - クックパッド開発者ブログ
                                  • ActiveRecord のモデルを整理する7つのパターン - tkawachi Blog

                                    7 Patterns to Refactor Fat ActiveRecord Models という記事があり、読もう読もうと思いつつ1年くらい経ってしまった。 ようやく読んだので理解した内容を書いておく。 コード例は元記事のもの。 Rails で thin controller, fat model を心がけていると、model がマジで激太りしてヤバくなる。 実際に自分が仕事で書いている rails アプリも激太りしててヤバい。 この blog の筆者が作っている CodeClimate で C 判定をもらう程度には肥満体型になっている。 Mixinに抜き出さない! Model が太ってきた時に考えるのは ActiveSupport::Concern を使って感心事を抜き出して、Mixin にすることだと思う。 実際に手元のアプリでも models/concerns/ なんていうディレ

                                    • 【個人開発】収益化したサービスのコードを50%以上削除して得られた境地

                                      先に境地を 個人開発の場合、少ないコード・最低限のシステム構成は正義。 なぜなら、時間やお金に制限がある個人開発者にとってサービスの継続に関わる問題だからです。 例えば、自分のサービスを世に広めたいとか、一発当てたいとか、作ったサービスで生活をしたいとか、 なにか目標があるなら達成する方法は、達成するまでやめないことです。 なのでサービスを提供し続けることは最も大切なことです。 これまで個人開発者としては↓の気持ちで開発を進めてきました。 しかし、この経験の後にこの↓の名言の大切さを改めて感じることができました。 シンプルにしておけ愚か者 また、本記事本文より たくさんプラグインやモジュールを入れたシステムはメンテナンスがしんどいです。「デフォルトで使う」ということの魅力を改めて実感しています。リソースが限られている個人開発の場合、このような時間の消費は極力なくす方向にしていくべきです。

                                        【個人開発】収益化したサービスのコードを50%以上削除して得られた境地
                                      • GitHub - airbnb/javascript: JavaScript Style Guide

                                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                          GitHub - airbnb/javascript: JavaScript Style Guide
                                        • リリースから5年、Webフロントエンドの経年劣化と向き合う

                                          @herablog さん、@shunke07 さんと共に Muddy Web #3 で発表した資料です。 https://cyberagent.connpass.com/event/261115/ news.ameba.jpは5年前にデスクトップ版ではReact化、モバイル版ではAMP化が行われ…

                                            リリースから5年、Webフロントエンドの経年劣化と向き合う
                                          • 10年以上続くサイトを初めてリニューアルして感じた事 | Basicinc Enjoy Hacking!

                                            ) 4月1日に10年続くとあるWebサービスをフルリニューアルしました。 リニューアルの目的は、システムが度重なる機能拡張により、必要以上に複雑化してしまい、ちょっとした修正でも非常に時間がかかるので今後、事業のスケールを拡大していく上のが難しくなってきたためです。 特に大きなところですと、スマホサイトがリニューアル前のサイトだと、スマホとPCで機能が完全に分断されてしまっていました。サイトを立ち上げた当初はスマートフォンすらなかった時代なのでしょうがないとは思いますが、これをこれ以上保守していくのはしんどいので、スマホファーストの思想を取り入れサイトを設計していきました。 技術的にも、PHPからRubyに変更して、ELBやS3をとりいれ、Githubベースの運用に変更することで、時代の流れに取り残されていたWebサイトを今風な感じの仕組みへと変更しました。 リニューアル自体はプロジェクト

                                              10年以上続くサイトを初めてリニューアルして感じた事 | Basicinc Enjoy Hacking!
                                            • Swagger+JSON SchemaでAPIの型をテストして開発サイクルをスピードアップさせた話 - pixiv inside

                                              CTO兼福岡オフィス立ち上げ担当として新アプリを作っている@edvakfです。 JSON APIを開発しているとこういう問題がありがちですよね。 仕様どおりにAPIの形式を作ったはずだけどなんか自信が持てない テストでいくつかのキーが存在するかの簡単なチェックはしてるつもりだけど、全部チェックするのは大変すぎる APIのControllerやViewをリファクタリングしたらレスポンスの形が変わってアプリがめっちゃクラッシュし始めた というのが怖くて誰もリファクタリングできなくなった APIドキュメントがメンテされない 知らない間にレスポンスのフィールドが増えてたけどドキュメントに書いてない これらを解決したい!と思って試行錯誤したら、スマートに解決することができました。この記事ではRailsのことについて書きますが、考え方は他の言語・フレームワークでも同じです。 なお、今回使ったgemのバ

                                                Swagger+JSON SchemaでAPIの型をテストして開発サイクルをスピードアップさせた話 - pixiv inside
                                              • 技術的負債を徹底的に解消した話 - オミカレのシステムフル刷新のためにやったことを全部教える - エンジニアHub|Webエンジニアのキャリアを考える!

                                                技術的負債を徹底的に解消した話 - オミカレのシステムフル刷新のためにやったことを全部教える 技術的負債、デザイン面での課題など、サービスを構成するシステムを全面にわたってリニューアルしたプロセスを、オミカレの高橋一騎さんが克明に伝えます。 株式会社オミカレでテックリードをしております、高橋一騎(たかはし・いっき/ @ikkitang )です。私たちが提供する婚活メディアサービス「オミカレ」は、2019年3月にシステムのフルリニューアルに踏み切りました。本稿では、このリニューアルのプロセスをできるだけ詳細にお伝えしたいと思います。 さて、「技術的負債」という言葉を耳にすることがあります。なぜ負債が生まれるのか。「品質を犠牲にしてでも早々にサービスをリリースし、短期的にビジネスの速度を上げる」という判断はその理由の一つに挙げられるでしょう。エンドユーザーへの価値提供スピードを得るための見返り

                                                  技術的負債を徹底的に解消した話 - オミカレのシステムフル刷新のためにやったことを全部教える - エンジニアHub|Webエンジニアのキャリアを考える!
                                                • 既存のAndroidアプリをリファクタリングしていく話

                                                  ソフトウェアエンジニアが品質保証を学んでわかったこと / What software engineers have learned about quality assurance

                                                    既存のAndroidアプリをリファクタリングしていく話
                                                  • Martin Fowler's Bliki (ja)

                                                    ここは、Martin Fowler's Blikiの日本語翻訳サイトです。Martin Fowler氏本人の許可を得て公開しています。データはGitHubで管理していますので、どなたでも翻訳に参加することが可能です。 ※現在、移行中につき、Markdown形式になっていないものが多々あります……。PRいただけると大変ありがたいです。 API design / agile / agile adoption / agile history / application architecture / application integration / bad things / build scripting / certification / clean code / collaboration / computer history / conferences / continuous deliv

                                                    • リファクタリングチームに入ってから学んだ理解しやすいコードを書くための基本的なこと - クラウドワークス エンジニアブログ

                                                      こんにちは! 去年の4月に新卒入社してからお酒ばかり飲んでいるエンジニアのd4teです。 4月から11月まではUX改善チームにてお仕事検索画面のフロントエンド開発を担当しておりましたが、11月からはリファクタリングチームにてcrowdworks.jpのリファクタリングをしています。 現在のcrowdworks.jpの状況 過去の記事にもあるように、crowdworks.jpはサービスインから約8年が経過し、30万行を超えるモノリシックなRailsアプリケーションになってきていて、コード行数の増加量やファイル変更数の推移は年々鈍化してきています。 内部には開発生産性を低下させる技術的負債が溜まってきており、技術的な投資がしづらくなってきているという課題があります。 自分が所属しているチームは、外部から見た動作を変えずに内部のコードを整理するリファクタリングで技術的負債を解消し、開発生産性の向

                                                        リファクタリングチームに入ってから学んだ理解しやすいコードを書くための基本的なこと - クラウドワークス エンジニアブログ
                                                      • if文の条件式の書き方あれこれ | GuildWorks Blog

                                                          if文の条件式の書き方あれこれ | GuildWorks Blog
                                                        • 3週間で48,000行のコードをこの世から抹消した話 – FiNC Engineering Blog – Medium

                                                          qsona (twitter) です。以前、7,600行のコードを安全にこの世から抹消した話 という記事を投稿しましたが、今回はそれよりもずっと泥臭い話を書きたいと思います。あまりテクニカルな話はありませんが、現場における取り組み・試行錯誤の経過を読んでいただければ幸いです。 たくさん消しました、がんばりました〜背景肥大化するRailsサービスFiNCはマイクロサービスを指向しており、主にRuby on Railsで書かれたサービスが30個ほど存在します。しかし、FiNCアプリのメインとなるRailsのサービスは、テーブル数800を超える大きなサービスになっています。 FiNCのサービスは2014年から書きはじめており、かなり初期の段階(2015年)からマイクロサービス化を意識してきました。にもかかわらず1つのサービスが肥大化している理由はいくつかあります。 最初の1〜2年ですでに大量のコ

                                                            3週間で48,000行のコードをこの世から抹消した話 – FiNC Engineering Blog – Medium
                                                          • ドキュメント作成時のあるあるアンチパターン20 - Qiita

                                                            業務でドキュメントを作成するケースは多々ある 例:仕様書・設計書・提案書・メール・障害票... ここでは各ドキュメント共通してありがちなアンチパターンをまとめてみました。 1. 表記がバイト表示・マイクロ秒表示 プログラムが出した数値をありのままに表示するパターン ファイルサイズが100MB, 1GBあろうと、バイト表示にする 桁数が多い数値に、桁区切り(,)を入れない 時間を何でもマイクロ秒・ミリ秒にする(1/100万秒までの精度が必要?体感で分かる?) 桁数が多い=精度が高い=良い文書、ではなく、見る人が必要とする精度に切り上げることが重要(売上で1円単位まで出すことが無いのと同様) 悪い例 No ファイル名 ファイルサイズ(byte) 処理時間(秒)

                                                              ドキュメント作成時のあるあるアンチパターン20 - Qiita
                                                            • エンジニアリング組織論への招待:リファレンスガイド第1章/第2章 - Qiita

                                                              はじめに 本稿は、拙書のエンジニアリング組織論への招待~不確実性に向き合う思考と組織のリファクタリングに関する参考となる書籍を企画意図とともにあげていく試みです。できる限り、専門書ではなく平易な文体の書籍を参考としてあげていきますので、このあたりを深掘りしたいなと思ったら、その箇所のみの参考書籍を併読していただけるとより理解が深まると思います。 Chapter 1 思考のリファクタリング 第1章は、「仕事」と「学力テスト」という2つの違いを論じながら、16世紀から20世紀初頭にいたるまでの科学哲学の歴史を辿っていくというのが「裏テーマ」となっています。そこから、「知識を得る」とは何かということを浮き彫りにし、それこそが<エンジニアリング>であると論じるということが本書を通じた論理展開の骨子です。 そのため、直接の参照ではありませんが、科学という概念が西洋社会でどのように生まれてきたのかとい

                                                                エンジニアリング組織論への招待:リファレンスガイド第1章/第2章 - Qiita
                                                              • sudoとsuがRustで書き直される。メモリ安全性向上へ

                                                                  sudoとsuがRustで書き直される。メモリ安全性向上へ
                                                                • Refactoring at Scale – Lessons of Rewriting Instagram’s Feed

                                                                  About the content This talk was delivered live in September 2016 at try! Swift NYC. The video was recorded, produced, and transcribed by Realm, and is published here with the permission of the conference organizers. When the Instagram team rewrote their iOS feed from the ground up, they learned more than they anticipated about collection views, diffing, and the dangers of too much spaghetti code.

                                                                    Refactoring at Scale – Lessons of Rewriting Instagram’s Feed
                                                                  • リファクタリングはエンジニアの福利厚生であり管理指標への影響はほとんどないんでは - きしだのHatena

                                                                    おそらくリファクタリングの工数を確保する説得力のある材料がほしくて、リファクタリングの効果をどう示すか悩んでる人がいたのですが、リファクタリングって非開発者に示せるような数字だすのは難しいよねという結論になったので、そのまとめ。 工数としてはコード管理費みたいな感じで乗せるのがよさそう。 まず、リファクタリングはそれ自体では価値を示せません。人工衛星に搭載するプログラムで、動きだしたらメンテナンスできないようなコードを最後にリファクタリングしたとして、どのような価値を示せるかと考えると想像できるのではないかと思います。 なのでリファクタリングの価値というのは、その後で新しいコードを追加したり既存のコードを変更したりといった作業がどれだけ作業時間短く品質高くなったかという間接的な指標で測ることになります。 ここでまず、最初のコードを書いた人とリファクタリングする人が同じなら、そこまで保守性か

                                                                      リファクタリングはエンジニアの福利厚生であり管理指標への影響はほとんどないんでは - きしだのHatena
                                                                    • 実践 よくないコードに立ち向かう整理術 〜あなたのコードはどんな色?〜

                                                                      ありがちな仕様とコードを題材に、よくないコードに立ち向かうための整理術を紹介します。 この Book にはデザインパターンや DDD やオニオンアーキテクチャや関数型プログラミングなどは一切登場しませんが、それらのエッセンスと日常のコーディングにおいて求められる基礎的な考え方の説明が含まれています。 この Book の内容は、特定の業務領域やプログラミング言語・フレームワークには限定されません。 Laravel でも RoR でも Spring でも React でも Nuxt.js でも、きっと役に立つはずです。 逆にこの本にはクラス設計のべき論や OOP vs FP のような議論は含まれません。 画一的なコードの良し悪しの定義は難しいですが、何かしら得るものがあったと感じてもらえたらうれしいです。

                                                                        実践 よくないコードに立ち向かう整理術 〜あなたのコードはどんな色?〜
                                                                      • 自動テストはなぜうまくいかないか?乗り越えるためには何が必要か? - Qiita

                                                                        リファクタリングの鶏卵問題 ソースコードがクソなので綺麗にしたい。 リファクタリングしたい。 しかし、リファクタリングが出来ない。 リファクタリングが出来ないのは、テストが無いからだ。 よし。じゃあテストを書こう。あれ、テストが書けない? そのようなテストが無く、書き換えられないことによる矛盾や憤りは皆さん何百回と感じてきたと思います。 しかし、この「テストが出来ない」ということを言語化するのは、非常に難しいと思います。それは、「テストが出来ない」には実は2つの視点があります。 本質的にテストが困難なモジュールで、誰がやってもテストが書けない。 本質的にモジュールはテスト可能だが、自分の実力が足りず、自分ではテストが書けない。 1.のようなテスト困難なモジュールは誰がやってもテストは書けないです。しかし、問題は、「テストを書きたい」と思ったとき、「自分がそれほどテストに詳しくない」という場

                                                                          自動テストはなぜうまくいかないか?乗り越えるためには何が必要か? - Qiita
                                                                        • GoでとあるAPIサーバを実装し直した話 | メルカリエンジニアリング

                                                                          サーバサイドエンジニアの @b4b4r07 です。この記事は Go Advent Calendar 2016 の 19 日目です。今回は Go (Revel フレームワーク) で書かれていた API サーバをフルスクラッチで書き直したお話をします。 Revel とは A high productivity, full-stack web framework for the Go language 公式の説明にあるように、Revel は高機能でフルスタックな Web フレームワークです。 複雑なルーティングや、パラメータのパーシング、テンプレート機能など、Web アプリケーションを作ろうとなったときに必要な手段はたいてい兼ね揃えているようです。公式ドキュメントに詳しく書かれています。 Revel 以外にも Go 製の Web フレームワークは多数あり、有名どころだと以下のようなものが挙げられ

                                                                            GoでとあるAPIサーバを実装し直した話 | メルカリエンジニアリング
                                                                          • 汚いcssを整形するWebアプリ「css2scss」でリファクタリングした際、「ヤバい」と感じた3つの機能と3つの点 - Qiita

                                                                            あらまし 別の業者が構築したという客先のホームページのcssが非常に読みづらく、 誰も手が付けられてない状態でヤバい(compactの状態で約350行)。 そこでリファクタリングをしようと思った際に、考えた。 「どうせならsass/scss対応にした方が可読性も可用性も上がる!ヤバい!」 sass/scss → css は当たり前として、 css → sass/scss って出来るのかよ、と思い調べてみると、数個発見した。 そのうちの1つ、今回ご紹介する「css2scss」が非常にエレガントだった。 実際に使用して感激して落胆したポイントを、それぞれ3つに絞ってご紹介。 css2scss sass/scssについては、まずはアレなcssを突っ込んでみて挙動を確認して頂ければ幸い。 また、下記のリファレンスが総括的で解りやすい。ご一読あれ。 Sass 3.2 オレオレリファレンス ヤバいを連

                                                                              汚いcssを整形するWebアプリ「css2scss」でリファクタリングした際、「ヤバい」と感じた3つの機能と3つの点 - Qiita
                                                                            • ソースコード検索エンジン「Sourcetrail」OSS化、GitHub上で公開

                                                                              CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

                                                                                ソースコード検索エンジン「Sourcetrail」OSS化、GitHub上で公開
                                                                              • 3ヶ月で20万行を消すためにやったこと

                                                                                AIエージェント開発における「攻めの品質改善」と「守りの品質保証」 / 2024.04.09 GPU UNITE 新年会 2025

                                                                                  3ヶ月で20万行を消すためにやったこと
                                                                                • 技術的負債の変質について - じゃあ、おうちで学べる

                                                                                  はじめに 最近、ふと気づいたことがある。技術負債って、もう昔とは全然違うゲームになってるんじゃないか?いや、もっと正確に言うなら、ゲーム自体が終わろうとしているんじゃないか? コーヒーを飲みながら、10年前に書いた自分のコードを眺めていた。当時は「きれいに書いた」つもりだったけど、いくつかの要望がありよく考えずに変更を加えた結果、負債の塊だ。でも、それを直すのに必要な時間とコストの計算が、根本的に変わってしまった。 いや、変わったどころか、もはや「時間とコスト」という概念すら意味をなさなくなりつつある。 syu-m-5151.hatenablog.com 私たちは技術負債を「悪いコード」として理解してきた。しかし、それは大きな誤解だった。Ward Cunninghamが1992年に生み出した原初の概念は、現在広く信じられている「技術的問題」とは根本的に異なっていた。 彼の言う負債とは、ソフ

                                                                                    技術的負債の変質について - じゃあ、おうちで学べる