タグ

ブックマーク / qiita.com (156)

  • 【Go】公式ツール "eg" を使って効率的にGoのコードをリファクタリングする - Qiita

    はじめに こんにちは、ken です。お仕事では Go をよく書きます。 最近、Go の公式パッケージであるgolang.org/x/toolsを眺めていたら、なにやら有用そうなパッケージを見つけたので今回はそれについて書こうと思います。 それはegというリファクタリングツールです。 eg とは eg は、例ベースで Go コードをリファクタリングするためのツールです。このツールを使用することで、特定のコードパターンを別のコードに置き換えることができ、効率的にリファクタリングが行えます。 先ほど貼った公式ドキュメントに詳しい説明があるかと思いきや The eg command performs example-based refactoring. For documentation, run the command, or see Help in golang.org/x/tools/ref

    【Go】公式ツール "eg" を使って効率的にGoのコードをリファクタリングする - Qiita
    okbm
    okbm 2024/07/16
  • 依存ライブラリはメンテナンスされていますか?dep-doctorによるメンテナンスチェクのススメ - Qiita

    はじめに 最近のソフトウェア開発では、ほとんどの場合、外部のライブラリを利用しています。これにより、開発者は来解決したい課題の解決に専念できます。 外部ライブラリを使用することには利点がありますが、同時に新たな運用リスクも発生します。たとえば、依存している外部ライブラリにセキュリティの問題がある場合、影響を受ける可能性があります。 一般的なセキュリティの対応手順では、まず、ソフトウェアの脆弱性情報がデータベースに登録されます。次に開発者はその情報を入手し、分析してから、対策済みのバージョンに更新するか、パッチを適用するなどの対応を行います。しかし、メンテナンスされていないライブラリの場合、問題があっても対応されないことが多いはずです。 また、言語のバージョンアップで破壊的な変更がある場合、依存しているライブラリが動作しなくなる可能性もあります。OSS であっても、送信したパッチやプルリク

    依存ライブラリはメンテナンスされていますか?dep-doctorによるメンテナンスチェクのススメ - Qiita
    okbm
    okbm 2024/01/09
  • VSCodeにChatGPTの拡張機能を入れてコードレビューやバグを発見してもらう - Qiita

    ChatGPTとは? OpenAIが開発するGPT-3という言語モデルをベースとした(執筆当時)チャットアプリです。 こちらの質問に対して、AIが色々な質問に答えてくれて、一般的な内容だけではなく、コードレビューやバグなども発見してくれるめっちゃ凄いやつです。 細かい内容は以下の記事がとても参考となります。 筆者の関連記事 VSCodeと連携して、ブラウザを開かなくてもChatGPTを使用できるようにする 通常はブラウザを開いて使用するのですが、コーディング中にサクッとレビューしてもらったり、バグを見つけてもらえるような拡張機能があったので、そちらの設定方法について記述してみます。 今回インストールする拡張機能 使用までの手順 環境 PC: MacBook Pro (Apple M2) OS: macOS Ventura 13.1 VSCode: v1.74.3 OpenAIの価格について

    VSCodeにChatGPTの拡張機能を入れてコードレビューやバグを発見してもらう - Qiita
    okbm
    okbm 2023/01/16
  • ドメイン駆動設計で貧乏を爆殺する - Qiita

    記事は ドメイン駆動設計#1 Advent Calendar 2019 19日目の記事です。 こんにちは、レガシーコードを 爆殺 リファクタリングするのが大好きなミノ駆動です。 今回はドメイン駆動設計導入上避けては通れない、大事な大事なお金の話を致します。 「ドメイン駆動設計を導入してみたいんです!」 部下「ドメイン駆動設計を導入してみたいんです!」 上司「それって何?なんのために導入するの?」 部下「…………」 はい、僕にもそんな時代がありました。 何のためにドメイン駆動設計を導入したいのか、簡潔に説明できますでしょうか。 「ドメイン駆動設計」のタイトルにあるように、書は設計に関する書籍です。 ソフトウェア全体の設計手法や思想に関して言及している書籍です。 まずはソフトウェアの価値とは何か、設計とは何か、それぞれ何かを整理してみます。 ソフトウェアの価値 ソフトウェアが満たすべき要件

    ドメイン駆動設計で貧乏を爆殺する - Qiita
    okbm
    okbm 2022/09/16
  • ドメイン駆動設計の比類なきパワーでRailsレガシーコードなど大爆殺したるわあああ!!! - Qiita

    この記事は クラウドワークスアドベントカレンダー2019 12日目の記事です。 概要 こんにちは、怒り駆動リファクタリングを生業としている @MinoDriven です。 弊社リファクタリング専門チーム「バグハンター」で現在実施中のリファクタリング設計について紹介致します。 ドメイン駆動設計 を用い、Railsレガシーコードに対しViewとControllerを ActiveRecord非依存 に変更する設計です。 状況 弊社ブログの過去エントリにあるように、弊社サービスcrowdworks.jpはサービスインから8年経過し、 30万行 を超えるモノリシックRailsアプリになっています。 開発生産性が低下してきています 。 生産性低下の課題を解決しようにも、大規模な上に複雑かつ密結合な構造になっており、 マイクロサービスへの移行も、リプレイスも困難な制約 があります。 そこで半年前にリフ

    ドメイン駆動設計の比類なきパワーでRailsレガシーコードなど大爆殺したるわあああ!!! - Qiita
    okbm
    okbm 2022/09/16
  • Laravel の認証・認可パッケージが多すぎてわけわからんので図にまとめた - Qiita

    元ネタ @localdisk さんの記事です。 こちらで概ね適切に説明されているものの,文章のみで図が無くて直感的に把握しづらいので,初心者にもすぐ飲み込ませられるように図に描き起こしてみました。 図 解説 illuminate/auth: 最小限の認証認可コアロジック コアコンポーネント群の laravel/framework に含まれているものです。 Socialite 以外のすべてのパッケージが,実質このコアに依存していることになります。 以下の記事でこのパッケージの詳細について説明しているので,ここでは端折って説明します。 伝統的 Cookie ベースのセッション認証 こちらでも解説している, 「Cookie に識別子を載せ,それに対応する情報はサーバ側のファイルに記録する」 という手法に近いものです。 実装は illuminate/session にあり, PHP ネイティブのセ

    Laravel の認証・認可パッケージが多すぎてわけわからんので図にまとめた - Qiita
    okbm
    okbm 2022/06/26
  • git commit --fixup が便利 - Qiita

    始めに 私は最近エンジニアに復帰し、現場で便利に思ったことを今後記事にできたらと思っています。 そして1発目は、gitのオプションについて記事を書いてみようと思います。 --fixup はどんな時に使えるの? Pull Requestなどで、軽微な指摘や後から気付いた修正など、来の機能のコミットとは別に修正コミットを残すのは少し嫌な時がありますよね。 コミットが一つ手前であれば、直前のコミットを修正してくれる git commit --amendなどで対応できますが、3つ前のコミットに修正を混ぜ込みたい時などは、少し大変。 そんな時に便利なのが、この git commit --fixupです。 使い方 例えば、下記のコミットの状況で、Fix article pageのコミットに対して、追加の修正をしたいとする。 ❯ git log --oneline 1131338365 (HEAD -

    git commit --fixup が便利 - Qiita
    okbm
    okbm 2022/04/15
  • 仕事が暇な時にすることリスト - Qiita

    大前提 この記事読まずに仕事して下さい。 整理系 作業机の整理 PC/ディスプレイの清掃 キーボードなどの周辺機器の清掃 PC内の不要ファイル削除 ドキュメント整理 雑務系 メール確認 スキルシート更新 日報/月報 社内アンケート 有給申請 その他各種申請 業務効率化系 ブラウザのブックマーク整理 キーボード設定見直し マウス設定見直し 使用ツールのショートカット調査 「ツール名 おすすめ設定」でググってより良い使い心地を目指す ブラウザ エディタ SQLクライアント メール管理 勤怠管理 PC起動時 ターミナル などなど 勉強会系 connpass等で勉強会を調べる IT勉強会を探すために捗るサイトまとめ【9選】 勉強会に参加する 勉強会の発表ネタを探す 勉強会に関する読み物 ITエンジニアのためのプレゼンテーション入門 ライトニングトーク(LT)準備の参考資料まとめ 交流系 社内のS

    仕事が暇な時にすることリスト - Qiita
    okbm
    okbm 2022/03/24
    意識高い
  • PlanetScaleというサーバレスDBが凄く勢いのあるサービスらしいのでQuick Startやってみた - Qiita

    PlanetScaleというサーバレスDBが凄く勢いのあるサービスと聞いて、公式にクイックスタートがあったのでやってみました。 環境 PC: MacBook Pro (Intel Core 2016) OS: macOS Montery12.2.1 では概要から確認していきます。 サーバーレスDBとは サーバがない、のではなく、サーバ管理や検討が不要 AWS Lambda(NoSQL)など PlanetScaleとは PlanetScale年表 2010年頃 YouTubeが急激に成長し、データベースが爆発しそうになっていたので、Sugu氏ともう一人のYouTubeのエンジニアがオープンソースプロジェクト「Vitess.io」(ヴィテス)を立ち上げる 2016年頃 MySQLでバイナリプロトコルを扱えるようにしたことで、VitessはYouTube以外の企業にとっても魅力的なシステムになり

    PlanetScaleというサーバレスDBが凄く勢いのあるサービスらしいのでQuick Startやってみた - Qiita
    okbm
    okbm 2022/02/28
  • Chrome DevTools の知っておくと便利かも機能 - Qiita

    長い間 Chrome の DevTools を使ってきて、便利だなと思った機能をまとめてみました。 様々な機能があり、これを覚えておくと開発時に役に立つかもしれないので、ぜひ使ってみてください。 この記事は Corome DevTools 公式 を参考にしています。 日語化 英語が苦手な方は日語化しましょう。 手順 DevTools を開いたら、歯車マークをクリック Language で日語を選択 [Reload DevTools] をクリックして DevTools のリロードをする 要素の状態を強制 指定の要素を :hover や :focus などの状態に強制的にすることができます。 そうすることで指定状態時のスタイルを確認することができます。 手順 要素タブをクリックする 状態を変更したい要素を選択する 今回は Google の検索フォームを選択 [:hov] をクリックする

    Chrome DevTools の知っておくと便利かも機能 - Qiita
    okbm
    okbm 2021/12/24
  • 5歳娘「パパ、余分なpropsいっぱい書くんだね!」 - Qiita

    新しい記事もよろしくやで! 5歳娘「パパのReact、めっちゃ遅いね!」 とある平日 娘(5歳)「パパ、今日は何のお仕事してるの?」 ワイ「おお、娘ちゃん」 ワイ「今日はな、ショッピングサイトを作ってんのや」 今日のお仕事内容 ワイ「↓このデザインの通りに、コーディングをせなあかんのや」 娘「なるほどー」 娘「このショッピングサイトで商品を売りたい!っていうお店があったとして」 娘「そのお店の人が、最初にお店の情報を登録するためのページだね!」 ワイ「せやせや」 まずはデザインを眺めてみる ワイ「この店舗登録ページにはなぁ」 ワイ「↑こんな感じの」 ワイ「項目名と入力欄がセットになったパーツが何度も登場するから」 ワイ「そのためのコンポーネントを作ろうかなー、って」 ワイ「そう思ってたとこなんや」 娘「ふーん」 娘「ラベル付きテキストフィールド的なコンポーネントってことだね」 娘「どこまで

    5歳娘「パパ、余分なpropsいっぱい書くんだね!」 - Qiita
    okbm
    okbm 2021/04/12
  • 「正直9年経ったいまでもfor文ググってる」 - Qiita

    「正直9年経ったいまでもfor文ググってる」 という議論記事があった。正直なところ私もググる方の人だ。私の感想: ポンとテキストエディタだけ渡された時に書けるか自信ないぞ...IDEがあればまあ大丈夫かなあ。 JavaScriptだけじゃない。言語色々扱うしという言い訳。正規表現とか毎度調べる。 だから世の中にチートシートというものがあるのだ。お気に入りチートシート多数。 実戦でどうしているか?結局周りのソースを見て馴染む書き方にしていますよ多分。 暗記するかしないかは受験勉強みたいなもので、コーディング面接に受かるなら必要。暗記そのものには意味はないとは思う。 競技プログラミングが使えないとかいう論もあったな。 ググり力も大事。 でも「最低限」もできないのはやはり恥ずかしい気持ちはある。 なんかこれ英語できるできないと似てるな。英語なんてGoogle翻訳、DeepL翻訳あればいいけど、実

    「正直9年経ったいまでもfor文ググってる」 - Qiita
    okbm
    okbm 2021/03/25
  • フロントエンドを100倍速くした( ^ω^) - Qiita

    おはようございます、なのくろです。年の瀬ですね。 この記事は ABEJA Advent Calendar 2020 の最終日です。 追記:おかげさまで Qiita LGTM賞 を受賞いたしました、ありがとうございます! 私は2020年01月にABEJAへ入社しました。チームではフロントエンド開発全般を任されています。 参入してちょうど1年が経過しましたので、今年取り組んだことをまとめました。 「フロントエンドを100倍速く」というタイトルは誇張気味なのですが、難しいことはせず、基的なパフォーマンス改善を素直に実践したという話を書きます。 稿では事例とやったことを紹介するのみですが、何かしらの知見や改善のきっかけに役立てば幸いです。 サービスについて 話をする前に、どんなサービスを開発しているかについて少しだけ触れます。 ABEJA社では「Insight for Retail」という、小

    フロントエンドを100倍速くした( ^ω^) - Qiita
  • 作業時間を簡単に可視化したい!! - Qiita

    シチュエーション 今日もいっぱい作業したな・・・あれもしたしこれもやったし・・・ でもあの作業はどれくらいかかってやったっけ・・・って時に役立つツールを紹介します。 使用するもの WakaTime これを使うことで自動でどのくらいの時間、どの時間帯に何の作業をしていたかを可視化してくれます!! 対応ソフト Plugin install instructions 現在これだけの数のIDE(一部ブラウザ等もあります)に対応しているためほとんどの方が使用できると思います!! アカウント作成 まずはアカウント作成をしましょう。GitHubアカウントでもログインできるのでそちらが楽かもしれません。 インストール方法 各エディタごとのインストール方法を書くととんでもない量になってしまうのでPlugin install instructions にある各エディタごとのインストール方法を見てください。 ち

    作業時間を簡単に可視化したい!! - Qiita
    okbm
    okbm 2019/12/15
  • crontab database ~君がしでかしてくれたもの~ - Qiita

    この記事は番環境でやらかしちゃった人のアドベントカレンダー2日目の記事です。 内容的にそろそろ時効だと思うので供養のために書きました。 追記。そういえば時期をちゃんと書いてなかったけど事件が起きたのは去年2018年、つまり仕込み(ヲイ)は2017年の話です ぶっちゃけネタ記事ですw (たまたま見つけて参加してみただけなのに昨日の記事の伸びっぷりを見て戦々恐々としてる TL;DR DB移行作業において、テスト期間中は常に最新のデータで処理できるように書いておいたプログラムをcrontabで実行していた。最終的に番に合わせて日時を調整していたが、そのことを失念し1年後に再実行されてしまい、番データが1年前に巻き戻る事故発生。 crontab は分、時、日、月、曜日を指定できるが、1年後に帰ってくるから気をつけてね。という話。 惨劇はなぜおこってしまったのか 結論から言えばcrontabの

    crontab database ~君がしでかしてくれたもの~ - Qiita
    okbm
    okbm 2019/12/02
    歌詞が凄いな!
  • プログラミング学習スクール「ウェブカツ!!」に対する今回の著作権侵害騒動について - Qiita https://t.co/C3FmDJHrEl

    どうも、かずきちです。 今回、弊社が運営するオンラインプログラミング学習サービス「ウェブカツ!!」にて著作権侵害騒動があった事について、僕の様々な過激ツイートが皆さんの琴線を刺激したかと思います。 そこはブランディングとしてあえてやっていましたので、批判が加速していくことは当たり前なため、そこに対して弁明することはありません。 その他について、僕の意見を述べさせてもらいます。 著作権侵害と思われるものについての対応について まず、今回の著作権侵害の騒動について色々な意見や論理が展開されましたが、そこについては法治国家ですから、申立てがあればもちろんきちんと法的な手続きにのっとり対応をさせていただきます。 今回、「ウェブカツの教材でもない単なるブログ運営」については外注を使用しているため、明らかに転用されているものは既に削除を行なっています。 「削除すればいいと思っているのか!」 のようなお

    プログラミング学習スクール「ウェブカツ!!」に対する今回の著作権侵害騒動について - Qiita https://t.co/C3FmDJHrEl
    okbm
    okbm 2019/10/20
    犯罪予備軍を採用する可能性があるのであれば、まともな経営判断では?というか著作権の話と採用の話は混ぜて話の方向性を別の所に持っていきたい感じすごいね
  • GitHubのスターは金にならない - Qiita

    Sizzyというツールがあります。 様々なサイズの画面を同時に表示し、レスポンシブレイアウトがどうなるかを一気に確認できるという便利なツールです。 スマホ向けWebサイトを開発している人なら、持っていると非常に便利でしょう。 参考:レスポンシブの確認ツール、後発だけに便利!スマホ・タブレットの主要なデバイスでの表示確認が同時にできる -Sizzy / 『Sizzy』様々なデバイスでのサイト表示を確認出来る便利サイト さてこのSizzy、元々無償のChromeエクステンションだったのですが、先日2019年7月に単独のアプリとして有償化されました。 一人あたり月5ドル(団体割引あり)のサブスクリプション制です。 以下は作者のKizte( Twitter、Medium、Webサイト )がその理由や経緯を綴った記事、GitHub stars won't pay your rentの日語訳です。

    GitHubのスターは金にならない - Qiita
    okbm
    okbm 2019/10/17
  • ソシャゲエンジニアの自分が開発に必須だなと思った知識(MySQL編) - Qiita

    この記事の目的 自分は、とある会社様の元でソシャゲAPI 開発をさせていただいています。 ソシャゲは、リリース時やイベント時などに集中アクセスされやすく、負荷軽減の知識がない状態で開発を行ってしまうと、運用時に緊急メンテ祭りになりやすいジャンルかなと思っています。 これまで培ってきた MySQL の知識ですが、脳内メモリ量の関係上、暗記できないのでメモしておこうというのが主目的です。 ここ数年ほどソシャゲ開発しかしていないため、偏っている感がある内容ですのでご注意ください。 概要 ストレージエンジンは InnoDB。メインで扱っている MySQL バージョンは 5.6。 記事の内容ですが、これらのキーワードを見て、おおよそ分かる方は読む必要はないかと思います。 インデックス系 クラスタインデックス カバリングインデックス EXPLAIN で注意するべき値 トランザクション系 MVCC

    ソシャゲエンジニアの自分が開発に必須だなと思った知識(MySQL編) - Qiita
    okbm
    okbm 2019/09/26
  • バズるためにジョイマンARを作ろうとしたら権利周りとかめちゃくちゃ苦労した話 - Qiita

    先日、twitterで投稿した以下の動画がちょいバズりしました。 うちのテレビからジョイマン出てきたwww pic.twitter.com/Ob74vN9JbX — ふしっきー (@fusikky) August 30, 2019 こちらはジョイマン高木氏にリツイートしていただいたことも相まって、2019年9月頭時点で約4400いいねの反響をいただきました。大変ありがたい限りです。 内容としては、「テレビでジョイマンのコント動画を見ていると突然テレビからジョイマン高木氏(の3Dモデル)が飛び出してくる」というもので、技術的にはARでジョイマン高木氏の3Dモデルを表示し、テレビから高木氏を消す、今流行り(?)のDR (Diminished Reality, 隠消現実感)を実現しています。 こちらの動画についてなぜやろうと思ったのか、苦労したところ、大変だったところを含めてコンテンツの選定から

    バズるためにジョイマンARを作ろうとしたら権利周りとかめちゃくちゃ苦労した話 - Qiita
    okbm
    okbm 2019/09/06
    真っ当にやってて素晴らしい
  • iTerm2 にステータスバーが付いた - Qiita

    α版の頃から追っかけてましたが、ついに 3.3.0 正式版がリリースされましたね! 合わせて以下の記事も続編として公開しております。 iTerm2 のステータスバーで動くコンポーネント作る - Qiita 左から順に今いるディレクトリのブランチ名、実行中のプロセス、バッテリー・CPU・メモリ・ネットワークの状態、現在時刻が表示されています。それぞれの配置や並べるコンポーネントは GUI で簡単に設定できるようになっています(Preferences > Profiles > Session > Status bar enabled > Configure Status Bar から設定できます)。 テキストの字体や色は自由に変更できますが、Auto-Rainbow をクリックすると、いい感じに色をつけてくれます。 tmux Integration と組み合わせると吉 iTerm2 には tm

    iTerm2 にステータスバーが付いた - Qiita
    okbm
    okbm 2019/04/14