タグ

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

  • 詳細設計書なんて、書きたくない・・・・Doxygenを使って自動生成してみる - Qiita

    はじめに お客様に提案をしているときの会話です。 お客様:「詳細設計書は作りますか」 私:「昔ながらの詳細設計(ロジックを日語で書くもの)は作りません。クラス図とか、シーケンス図は複雑であれば作りますが、今回のシステムはそこまで必要なものはないものなので、割愛しようと思っています。」 お客様:「保守をお願いするかどうか未定なので、場合によっては引継ぎのために作ってもらうかもしれません」 私:「・・・・」 といった感じで、私がこの業界に入った30年前は、確かにプログラムを作る前に、詳細設計書と呼ばれるプログラムを日語で書いていました。 最近、詳細設計と呼ばれるものを作った記憶がなく、無駄なものは作りたくないなぁという思いから、コードから自動生成できないかなと思って、いろいろ試してみました。 Doxygenって いろいろ調べてみると、Doxygen にたどり着きました。 色々な言語に対応し

    詳細設計書なんて、書きたくない・・・・Doxygenを使って自動生成してみる - Qiita
    mak_in
    mak_in 2024/07/07
    最近、Github copilotをちょいちょい使いながら実装してると指示の内容が、コレって詳細設計なのでは……?と思うことがある。もしかしたらAIへの指示書みたいな形で詳細設計が活躍するようになった未来があったりして…
  • ノーコードって結局使えないよね~って話 - Qiita

    はじめに コードを書かずにWebサイト/アプリ/ツール等の制作ができるノーコードツールが最近流行っていますよね。 私自信、半年ほど前からn8nやActivepiecesといったOSSのノーコードツールやPower Automateなど、幾つかのノーコードツールを触っていたですが、ツールとして未成熟であったり自由度が低かったりと、「結局流行らないのでは?」と感じています。(GPTのそれと一緒で期待値が高いだけなんですかね) ノーコードツールの幻想 D&D操作だけで直感的に操作できるノーコードツールは、一見、プログラミング初心者にとって救世主のように映ります。しかし、それは十分な選択肢なのでしょうか? 当に手軽ですか? 多くのノーコードツールでは、よくあるような定型作業のテンプレートとD&D操作で実装できるUIを提供することで、直感的に操作できるよう設計されています。 一見、自由度の高い開発

    ノーコードって結局使えないよね~って話 - Qiita
    mak_in
    mak_in 2024/07/02
    ノーコードをガッツリ触ってた時期があるのだが、結局、欲が出て複雑なことをやろうとすると破綻する。簡単なやつで良いのよ。ただ簡単なやつに投資できないよね…という流れで大きくしてしまいがち、なのはあるある
  • 世界1位取った後3年間オセロAIを作り続けたらナニモワカラナクなってチョットダケデキルようになった話 - Qiita

    2021年、ふとしたきっかけでオセロAIを作り始め、オセロAIコンテストに作ったAIを提出し、なんやかんやあって半年かけてそのコンテストで世界1位になりました。 それで満足…?と思いきや、全然満足せず、コンテスト関係なしにオセロAIを作って早3年。この記事ではオセロAIが色々なところに私を連れて行ってくれた話と、オセロAIが深いという話をします。 この記事は2年ほど前に書いていっぱい読んでいただけた以下の記事「カンゼンニリカイシタ話」の続編、みたいな立ち位置です。単体で読んでも、以下の記事と合わせて読んでも楽しめます。 世界1位からさらに高みを目指す 私が参加したオセロAIのコンテスト(CodinGame Othello)は、コンテストという特性上、かなり厳しい制約が設けられていました。例えば着手する時間です。これは1手あたり0.15秒以下でないといけません。また、コード長にも制限があり

    世界1位取った後3年間オセロAIを作り続けたらナニモワカラナクなってチョットダケデキルようになった話 - Qiita
    mak_in
    mak_in 2024/06/29
  • Git不慣れ勢を束ねて安全なチーム開発をするメモ - Qiita

    稿は当初チーム開発時のメンバー向けにまとめたものです。 ある程度、端折っていた背景などを記載しました。 git初心者同士でのチーム開発において、git操作を詳しく知らないメンバーも含め安全に行う必要がありました。しかし、開発期間はごくわずか...この状況を回避するために、下記の対応をとりました。 Gitコマンドの基礎的な内容を理解する(私) 各種操作をGUI上で完結させる拡張機能を色々と導入する シンプルな開発フロー(Github flow)を採用し、コマンド実行に相当する操作を限定する 各操作をGUI上での操作に置き換え、チームメンバーに教える 稿はその際の、コマンドやGUI操作に関するメモをまとめたものになります。 こういった取り組みのおかげか、チームの開発をすんなりフローに乗せることができました。 ■ 前提条件 対象とする動き Github flowを回すうえで、 cloneする

    Git不慣れ勢を束ねて安全なチーム開発をするメモ - Qiita
    mak_in
    mak_in 2024/05/24
    複数のプロジェクトの複数のブランチを見まくるので、branchが見やすいSourceTree使ってる。つい先日Windowsのexplorerのgit統合が発表されたので、これがどうなるか気になるところ。pull/branch/commit/push/プルリクがあれば十分よ
  • 本当のAWS基礎 昭和~平成~令和の時代の変遷システムの変化と今昔物語 - Qiita

    内容 社内でAWS知らない人でもこれだけは覚えていてほしいという動画を作成して欲しいとリクエストあり。その内容を資料化したものです。小学生の子供に説明してみましたがになんとなくAWSが分かったと言っていたので今回は結構分かりやすくまとめられたと思います。 システムを構築する時 システムを構築する際、サーバやネットワークなどのインフラが必要になります。昭和の時代は物理サーバを買ってきてラックマウントしてネットワークに接続してと物理的な作業が多く発生していました。 その後、物理サーバの上に仮想的なサーバを作成できる仮想化技術の発展により、仮想サーバが主流となりました。最初に物理サーバを用意して、仮想化基盤を構築する必要があります。仮想化基盤構築後は、新しいシステムを作りたい場合はすぐに仮想サーバの準備を行うことができ、物理環境の時と比較すると大きな進展がありました。 仮想化基盤を自社で構築する

    本当のAWS基礎 昭和~平成~令和の時代の変遷システムの変化と今昔物語 - Qiita
    mak_in
    mak_in 2024/04/22
  • rebase 教から脱退します - Qiita

    rebase で色々あったので、備忘録として簡単に書いていきます。 前提背景 開発作業中、元のブランチに変更があった場合、私は変更を取り込むために常に rebase を使用します。これを選ぶ主な理由は「コミットログが見やすく保たれるため」です。 Gitには同様のコマンドとして merge がありますが、これは変更を取り込む際にマージコミットを作成する点が異なります。私はマージコミットによってコミットログが煩雑になると感じています。 このような理由から、私はrebaseを積極的に使用しています。 何があったのか 簡単に言うと、レビュー中にブランチ元の変更があったので、 git rebase からの git push -f origin [ブランチ名] やったらレビュアーのコメントが吹き飛びました。 いやー、めっちゃ怒られたよね💦 原因 「レビュー中」という状況がまずかった。 コードを共有し

    rebase 教から脱退します - Qiita
    mak_in
    mak_in 2024/04/21
    リベースで整えるの完全に諦めてる。この記事にもあるように、事故るから。プルリクで良いじゃん。リベースで整える時間があるなら他のことしていたい。事故や整理時間を気にして開発のスピードが落ちるのも嫌だし
  • テーブル・DB設計するときの極意 - Qiita

    はじめに 「テーブル・DBを設計するときのさいきょうの極意」を完全に理解したので 初心者(私)向けに共有する記事です。 どうぞ揉んでいただければ幸いです。対戦よろしくお願いします。 さいきょうの極意 初心者が「テーブル・DB設計して」と言われると、 「アソシエーションってあったよね・・・バリデーションも?中間テーブルを使うときと使わないときと・・・」と大変に混乱し、何から手をつけていいかわからなくなります。 そんなあなたにこれ! ・テーブル・DB設計は「属性」と「関係」の2つだけ ・「属性」は必要なものを書くだけ ・「関係」は 1:1 / 1:N / N:N しかない(しかも、ほとんど 1:N) これが極意だ!!! 一般的な、「ユーザーがいて、投稿ができて、コメントといいねができるサービス」で考えてみましょう。 users / posts / comments / likes のテーブルが

    テーブル・DB設計するときの極意 - Qiita
    mak_in
    mak_in 2024/04/13
  • 部署異動の際の Power Apps や Power Automate の引継ぎについて - Qiita

    はじめに これまで、作成した Power Apps のアプリや Power Automate フローに共同所有者を追加する方法等について書かれている記事もあるという認識ですが、部署異動の時期だと思うので、改めて情報を整理してみたいと思います。 方針決め まず、部署異動の際、元々の作成者について、 Power Apps のアプリや Power Automate フローの所有権限を削除するのか、つまり、アクセス権をはく奪してアクセスできなくするのか、あくまで、引継ぎ先の人を共同所有者を追加するだけに留めるのか、方針を決める必要があると思います。 こちの方針により実際に行うことが変わってきます。特に決まっていない場合はこれから書く内容も踏まえ、どちらにするか判断するのでも良いかと思います。 個人的には、余程の事情がなければ、元々の作成者も所有者として残しておく方法の方がいいと思います。 これから

    部署異動の際の Power Apps や Power Automate の引継ぎについて - Qiita
    mak_in
    mak_in 2024/03/26
  • たった2つのステップを意識するだけで書けない単体テストがほぼなくなる - Qiita

    はじめに この記事は レガシーコード改善ガイド: 保守開発のためのリファクタリング を参考に手を動かしてみて、ある程度自分の中で体系的にまとまった知識のアウトプットです。 この記事で扱う内容 この記事で扱うのは主にレガシーコードで単体テストを書く際のハードルになりがちな 依存関係の排除 に関する手法を紹介します。 この記事を読んだ後に、 『この観点を持っておけば単体テストをスムーズに書いていけそう!』 『今までモック使ってたけど意外とモック使わなくても書けるね!』 となったらいいな、と思います。 ちなみに、今まであんまりテスト書いたことないよーて人は以下の記事など参考にして一度やってみてください。 前提の話: この記事の旨は「テスト書きにくいプロダクトコードも依存関係を排除すれば楽にテスト書けるよ」なので、それ設計的にアウトでは?リファクタリング耐性低くない?みたいな話は度外視してます。

    たった2つのステップを意識するだけで書けない単体テストがほぼなくなる - Qiita
    mak_in
    mak_in 2024/03/19
  • 詳細設計の書き方 - Qiita

    はじめに システム開発において詳細設計という工程があります。 プログラマーはこの詳細設計を確認しながら開発を行うことになります。そのため詳細設計ではシステムの構造や仕様、動作などを細かく定義することが必要になります。 詳細設計を行うことでシステム開発の方向性が明確になり、コーディングやテストをスムーズに行うことができます。 詳細設計の成果物としてはクラス図やシーケンス図、画面設計書やデータベース設計書などがあり、システムの動きや機能を具体的に表現するものです。 今回は詳細設計を作成する機会があったので、詳細設計の書き方についてまとめたいと思います。 詳細設計の目的やメリット 詳細設計の目的は、システム開発の品質や効率を向上させることです。詳細設計では、システムの仕様や動作を細かく定義することで、以下のようなメリットがあります。 開発工程でのバグや遅延を減らすことができる テスト工程での不具

    詳細設計の書き方 - Qiita
    mak_in
    mak_in 2024/02/18
    設計と設計書は別だと思うんだよ。アジャイルは設計書書かない、を設計しない、と勘違いしてる人いるけど設計はすべきだと思ってる。そもそも設計書は設計の結果のアウトプットであって、設計そのものでない。
  • 生産性向上のために身に着けたい10のこと - Qiita

    はじめに こんにちは。 普段働いているとき「どうやったら生産性があがるんだろう?」と思うことが時々あります。 「生産性向上」といっても具体的にどうするのか、なかなかイメージがつきにくい方も多いと思います。 この度、最近色々なところで目にする「世界一流エンジニアの思考法」というを読みました。 このでは主に生産性を向上させるためにアメリカの一流エンジニアが行っている習慣や考え方について書かれており、 そこから個人的に身に着けたい10のことをピックアップしました。 内容について 筆者の牛尾さんはマイクロソフトの現役ソフトウェアエンジニアです。 そこで出会う一流エンジニアたちの考え方や、実践していることについて書かれている内容となっています。 アメリカでの内容なので日では考え方のことなる部分もあるかもしれませんが、参考になる部分は多く 働き方や思考法について考えさせられる内容です。 個人的に

    生産性向上のために身に着けたい10のこと - Qiita
    mak_in
    mak_in 2024/02/04
  • ぬるいエンジニアの生態 - Qiita

    Qiitaで周りを見るとほんとすごい人ばっかりですよね。 しかし、凡百のエンジニアもいます。 私はとくに大手につとめているわけでもなく、さりとてイケイケスタートアップでもなく、AtCoderで色をもっているわけでもありません(※あったらいろいろはかどると思います)。 フツーなりに、「エンジニアになってみてよかった」、と思ってはいたりするので、ぬるいエンジニアの生態をご紹介します。 ロールモデルにはならないけどサンプルにはなるんじゃないかなー。 自己紹介 新卒から5年~くらい、北海道の中小企業につとめています。 北の大地にいると、「S県」などであらわされる匿名性がちょっとうらやましいです。 春からシーランド公爵(になる予定)! どうしてエンジニアを選んだのか 大学は地方国公立で、文系です。 完全に未経験からこの業界に入りました。 しいて言えばパソコンで遊ぶのが好きだったので、基的な操作はで

    ぬるいエンジニアの生態 - Qiita
    mak_in
    mak_in 2024/02/04
    応用情報技術者試験ちゃんと合格してるの、ぬるいエンジニアじゃない説。それとも、ぬるい環境にいるエンジニアって意味だろうか?
  • ぼくがかんがえた、さいきょうのテキストコミュニケーション - Qiita

    はじめに この記事を書こうと思ったきっかけは、初めて参加したフルリモートのプロジェクトで、 ① 実装段階になって初めて、メンバー間の認識ズレが発覚 → ② 大幅な手戻り(設計からやり直し)が発生 → ③ 結果、スケジュールを遅らせざるを得ない状況に追い込まれる という個人的な経験からです。 振り返ってみると、チャットツール(teams)でのテキストベースでのコミュニケーションがほとんどで、 質問しやすい雰囲気をつくる!、 認識があっているか気軽に確認できる! という、テキスト・コミュニケーションが取れていなかった反省があります。 リモートワークでは質問や認識合わせを気軽にできる環境を作ることが重要! そのために必要なテクニックをご紹介します! テキストコミュニケーションの重要性 2022年111名の人に行われた調査では、 ハイパフォーマンスな人は、絵文字・顔文字を多用していることが分かりま

    ぼくがかんがえた、さいきょうのテキストコミュニケーション - Qiita
    mak_in
    mak_in 2024/02/03
    正直コレは軽く気にする程度で、それでも「メンドクセ」という場面が多々出てくるので、さっさとZoomやTeamsの数分の軽めのビデオ会議しちゃうな。時間を取られたくないからテキストにしたい派なのでそうしてる。
  • メモリの使い方の理解はプログラマのたしなみ…??😰 - Qiita

    はじめに プログラミング学習を始めて1年経過しました。しかし、今までオブジェクト指向の概念から目を背けてきた結果、現在エンジニアとして苦労しているので、書籍「オブジェクト指向でなぜつくるのか」にて学習中です。 その中で、以下のような章がありました。 「メモリの仕組みの理解はプログラマのたしなみ」 これを見て、自分は今までそんなこと意識していなかったのと強く感じたので、今回はこの書籍で書かれていた、一般的なプログラムの動作環境としての最低限の知識を整理しました。 プログラムが動く仕組みを理解する上で重要な概念 コンパイラ方式とインタプリタ方式 プログラムの基的な実行方式は大きく分けて2つあります。 コンパイラ方式 コンパイラって何? コンパイラは、プログラム全体を読み込んで、それをコンピュータが理解できる形(機械語)に一度に変換するプログラムです。 どういう時に使うの? コンパイラは、プロ

    メモリの使い方の理解はプログラマのたしなみ…??😰 - Qiita
    mak_in
    mak_in 2024/01/15
    プログラミングの歴史は、何にコストがかかるか、高いのか、安いのか、の歴史とも言える。メモリが高い時代はとにかくメモリの使い方が常識だった。
  • 【バックエンド】駆け出しエンジニアが目指すジュニアレベルのエンジニアとは【2024年版】 - Qiita

    はじめに こんにちは。 普段はフロントエンドの開発をメインでやっておりますmamiと申します。 最近バックエンドの方の勉強や、少しずつですがDB設計やAPI作成などの業務もやらせてもらえるようになったので、自分のエンジニアとしてのレベル感や、この先目指すべき道筋を明確にしたいな〜という思いでこの記事を書いております。 これは自分のための記事であると同時に、同じように駆け出し中のエンジニアさんや、ミドル層を目指す手前のエンジニアさんにも刺さる内容になっているかと思います。 今、自分がどのようにキャリアアップしていくべきなのか、どのような道筋でスキルを磨いていけばいいのか。そんなふうに悩んでいる方は是非読んでみてください。 ※内容はバックエンドエンジニアが対象になりますが、フロントエンドの方もなにか通じるものがある…かもしれません。 ちなみにですがフロントエンドの方の記事は下記で執筆しています

    【バックエンド】駆け出しエンジニアが目指すジュニアレベルのエンジニアとは【2024年版】 - Qiita
    mak_in
    mak_in 2024/01/08
  • GraphQLは「オワコン」「流行らない」のか? - Qiita

    はじめに 今回はタイトルの通り、「GraphQLは「オワコン」「流行らない」のか?」という問に対して、個人的に調査した内容となります。 今回のタイトルで記事を書くことにしたのは、Googelの検索フォームに「GraphQL」と入力したところ、サジェストに「Graphql 流行らない」「Graphql オワコン」と表示されたことがきっかけです。 (試しにシークレットモードで入力してもサジェストされるので、私の検索履歴などのパーソナル情報によるバイアスはかかっていないはずです) 「Graphql オワコン」での検索結果TOPに「GraphQLはオワコンですか?これからはtRPCの時代ですか?REST APIの位置づけは何ですか?」というページがあったので読んでみました。 回答者はNodejsユーザグループ代表の古川さんで「GraphQLをオワコンと称するにはまだ早い」と回答されています。 私も

    GraphQLは「オワコン」「流行らない」のか? - Qiita
    mak_in
    mak_in 2023/12/13
  • 【入門】事例で学ぶ要件定義 - Qiita

    はじめに 最近プロジェクトマネジメント関連の仕事をする機会が増え、要件定義や設計関連の業務もするようになったので、私の経験を基に要件定義の具体的なプロセスや考え方について、まとめていきます。 記事について Findy様の「要件定義 先達に学ぶ今日から使える実践テクニック Lunch LT」で登壇した内容を元に作成しています。 この記事の対象者 要件定義の基や思考プロセスを学びたい人 エンジニアからプロジェクトマネジメントをやりたい人 ビジネスサイドとエンジニアサイドのコミニュケーション能力を向上させたい人 具体的な事例を通して要件定義を学びたい人 前提 紹介する内容はあくまで一例であり、プロジェクトやチームの状況に応じて調整が必要 あくまで自分(駆け出しPM)の経験に基づいた内容を言語化しています プロジェクト規模は10名〜20名のWebアプリ開発を想定しています システム開発の全体像

    【入門】事例で学ぶ要件定義 - Qiita
    mak_in
    mak_in 2023/12/12
    他の人もコメントしてるけど、要件定義を5段階、が、あるべき理想像の進め方でなく、結局こうなっちゃうよねぐぬぬ……という苦しめの実態に近い形式になってる。システムが何故欲しいのかというNeedsがまずは大事
  • エンジニアに読んで欲しい技術書90選 - Qiita

    はじめに タイトル通り、読んで欲しい(圧)技術書をたくさん集めてみました。自身の担当から外れる領域に関しては、会社の人に協力を仰ぎ、編集しました。「何を読めばいいかわからない」、「次の読むを探したい」などのように考えている方の参考になればと思います。 また、大きく、 ・新米エンジニア ・脱新米エンジニア と分けてまとめたので、参考にしてみてください。 技術書のススメ 技術書の紹介の前に、技術書で得られるものについて説明したいと思います。全然読み飛ばしてもらって大丈夫です。この章からの紹介を行なっていきます。 技術書は体系的な構成となっているため、技術書を読むことで、 ・論理的な思考力が身に付く ・技術歴史・背景を知れる ・技術の知識、手法を学べる これらを学ぶことができます。論理的な思考力、知識はわかるけど、技術歴史・背景を知ってどうするんだと思う方もいるかもしれません。しかし、歴

    エンジニアに読んで欲しい技術書90選 - Qiita
    mak_in
    mak_in 2023/10/31
    これだとエンジニアじゃなくて、ソフトウェアエンジニアだけだろ、のツッコミに対する毎度のアンサー本。技術士ハンドブック  https://www.ohmsha.co.jp/book/9784274216688/
  • 【随時更新】テーブル設計でミスらないために確認したいアンチパターン - Qiita

    はじめに 参考書籍が非常に参考になったのでテーブル設計に関する内容のみをピックアップまとめてみました。普段テーブル設計をしていれば"当たり前"に実践している方も多いと思いますが、今回チーム内での勉強会用の資料の意味合いも込めて作成しました。記事では、基的にリレーショナルデータベースにおける設計を想定しています。 ご留意ください 記事は"何があってもこのような設計が非推奨される"というものではありません。その時々のコンテキストによっては採用することが妥当な場合もあるかと思います。 1. 正規化が不十分 非正規化とは、データベース設計において、データの重複や冗長性を意図的に許容することを指します。正規化は、データの整合性と効率的なストレージのためにデータの重複を排除するプロセスですが、非正規化はそれとは逆のアプローチをとります。非正規化の目的は主にパフォーマンスの向上です。ジョイン操作の

    【随時更新】テーブル設計でミスらないために確認したいアンチパターン - Qiita
    mak_in
    mak_in 2023/10/01
    業務システムでは、性能のためでなく、トレーサビリティの観点で敢えて、データ更新時点のマスタを保持しておく非正規化と、最新のマスタを参照するための正規化、を併用するケースが増えてるかな。
  • ソフトウェア設計・アーキテクチャの学び方 - Qiita

    はじめに この記事はHow to Learn Software Design and Architecture | The Full-stack Software Design & Architecture Mapを翻訳したものです。 翻訳がおかしい箇所などあればご指摘頂けるとありがたいです。 元記事の著者: Khalil Stemmler(@stemmlerjs) 設計、アーキテクチャ、フロントエンド、ブロックチェーンに興味ある方是非Twitter(@show_clements)フォローしていただけると嬉しいです! 設計に関する記事 ソフトウェアデザインとアーキテクチャは、DevOpsやUXデザインのように、コンピューティングの領域の中でも独自の研究分野となっています。ここでは、クリーンコードからマイクロカーネルまで、ソフトウェアデザインとアーキテクチャの幅広さを説明するマップを紹介しま

    ソフトウェア設計・アーキテクチャの学び方 - Qiita
    mak_in
    mak_in 2023/09/23