Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
はじめに エンジニアのみなさま、日々の学習本当にお疲れ様です! また本記事まで足を運んでいただき本当に感謝です。 約2分程度で読めるので最後まで読んでもらえると幸いです。 要件定義関連の記事も投稿してます。時間あればぜひ読んでみてください! 今回は「機能要件」に関する内容について投稿します。 機能要件とは ※引用:IPA(独立行政法人 情報処理推進機構)図1 機能/非機能要求の相違点と課題 機能要件は、「必ず搭載すべき機能」 を指します。新規開発であっても既存のリプレイスであっても顧客としては業務内容に直結しているため、イメージしやすい機能になっています。機能要件をすり合わせすることにより、システムの動作が明確になり設計段階での誤解を防ぎます。これらの機能要件が適切に設定されていないと、後々の開発過程で手戻りが発生する可能性があるため、初期段階での詳細な定義が求められます。 どんなドキュメ
はじめに こんにちは、エンジニアの清水です。 私は業務で Go を書いているのですが、context についての理解が浅いことでエラーに遭遇したので、勉強のために記事を書いてみました。 この記事では、実際のコード例を交えながら Go 言語の context パッケージの基本から実践的な使用方法まで解説していきます。 また実際に私が遭遇したエラーの例も交えて context の陥りやすい落とし穴についても解説します。 context の基本 context とは何か contextは、Go の標準ライブラリに含まれるパッケージで、API やプロセス間でリクエストスコープの値、キャンセル信号、デッドラインなどを伝播するための仕組みを提供します。 なぜ context が必要なのか リソースの適切な管理:不要になった処理を適切にキャンセルし、メモリや CPU などのリソースを解放できます。 タイ
関連記事 マイクロサービスを支えるインフラアーキテクチャ (AWS Dev Day 2019登壇資料) ECSデプロイツールを公開しました ECSにおけるログの取り扱いを別ページに移動させました 設計 基本方針 基盤を設計する上で次のキーワードを意識した。 Immutable infrastructure 一度構築したサーバは設定の変更を行わない Infrastructure as Code インフラの構成をコードで管理 (Terraformを採用) Serverless architecture 無駄にサーバを増やさない アプリケーションレイヤに関して言えば、Twelve Factor Appが参考になる。コンテナ技術とも親和性が高い。 ECSとBeanstalk Multi-container Dockerの違い 以前に記事を書いたので、詳しくは下記参照。 Dockerコンテナデプロイ
はじめに こんにちは、kenです。みなさんコンフリクト解消してますか! チーム開発をしているとコンフリクトとは嫌でも向き合うことになりますが、コンフリクト解消って緊張感のある作業なのでやりたくないですよね。 そんなコンフリクト解消をちょっぴり楽にする(かもしれない)コマンドを最近知ったので今回はそれを紹介します、その名もgit rerereです。 git rerereとは Gitの公式ドキュメント(日本語版)には次のように記載されています。 git rerere コマンドはベールに包まれた機能といってもいいでしょう。これは “reuse recorded resolution” の略です。その名が示すとおり、このコマンドは、コンフリクトがどのように解消されたかを記録してくれます。 そして、同じコンフリクトに次に出くわしたときに、自動で解消してくれるのです。 ここに書かれているように、git
Pythonインストールできないんだけど! なんかいつもこれ同じ作業してるよな、自動化出来ないかな…よしやったる! ↓ みんなー!こんなツール作ったよー、使ってみてー! ↓ そして起こる「ちょっと、俺、.pyとかいう拡張子使えないんだけど」の声。 会社のPCって外部のアクセス禁止だったり新規ソフトウェアのインストール制限があったりと、色々制約がありますよね。この制約のせいで、作ったはいいが使えなかった、みたいな理不尽なハマり方したり、一方で試してみたら意外とこれ動いちゃうんだ!?みたいなこともあったりするので、ここではそんなずる賢い業務改善を必死に考える社員のみんなに、どれでやれば利用可能なツールづくりができるのか、その選択肢を載せていくよ。 Python + exe化ツール(Pyinstaller) やっぱ中身含めてファイル操作系でちょこちょこやるならPythonが楽だよね。ただ、Pyt
1: 購入 0: 閲覧(したが購入してない) -: 未観測 ユーザーベース型 ユーザー同士の類似度を計算 「あなたと購入履歴の似たユーザーはこんな商品を買っています」 行を各ユーザーのベクトルとみなして、似たユーザーを見つける(上位N人) 似たユーザーが購入しているアイテムを推薦する(N人の平均値などで購入しそうな順に提示) アイテムベース型 アイテム同士の類似度を計算 「この商品を買ったユーザーはこんな商品も買ってます」 列を各アイテムのベクトルとみなして、類似度の高いアイテムを推薦する(上位M件) 類似度計算には、コサイン類似度やJaccard類似度が使われる。 類似度を計算する際に、未観測「-」は適当な値(0, 0.5など)で埋めるか、無視をする。 ログデータを使うため、情報の少ない新規アイテム/新規ユーザーに弱いコールドスタート問題がある。 コンテンツベースフィルタリング アイテム
エンジニアのみなさま、日々の学習本当にお疲れ様です! また本記事まで足を運んでいただき本当に感謝です。 約3分程度で読めるので最後まで読んでもらえると幸いです。 はじめに 工数管理はプロジェクトの成功に欠かせない要素です。工数を正確に見積もり、管理することで、プロジェクトの遅延を防ぎ、クライアントやプロジェクトメンバーの信頼を得ることができます。 本記事では、工数見積もりの重要性とその手法、そして失敗しないためのポイントについて書きたいと思います。 「もっとこうした方が良いよ!」 や 「うちの会社ではこの様な考えで取り組んでます!」 があればぜひコメント欄で教えていただけますと幸いです。 工数とは? プロジェクトや業務を完了するために必要な作業時間のことを指します。 「人日」 や 「人月」 と呼ばれており、1人日は8時間、1人月は160時間(1日8時間、平日20日稼働)で表現するケースが多
「これはHEAD^^」 「これはHEAD^2」 「これはHEAD~2」「HEAD@{2}、reflog用」「全部いっしょじゃないですか」「違う!!もっとよく見ろ!!」Git 画像略 TL;DR(Too Long; Didn't Read) ~nは単純なコミットの親をたどる(ブランチの分岐がある場合は現在のブランチのみで辿れるコミット) ^nはマージコミット向けで^2は「そのコミットの2番目の親(取り込んだブランチの前回のコミット)」 だからHEAD^n(n > 2)は存在しない 2024/06/04追記: OctopusなMergeだと3つ以上のブランチからマージできるので^nも存在する......があまり見かけることはない HEAD^^は「HEAD^の親」、HEAD^2は「HEADのもう一人の親」みたいな......。タラちゃんがHEADだと波平がHEAD^^でマスオがHEAD^2です(
今の時期って、期が変わり 、自分のキャパを超えて、モーレツに頑張っている人と、自分のキャパを持て余し気味で、モチベーションが落ち気味の人がいるのではないかと思います。 5月病とはよく知られた言葉ですが、正式な病名ではなく俗称です。 激しい入学試験をパスしてやっと大学に合格し た新入生が、ゴールデンウィーク明け頃に無気力な状態になることから名づけられました。 大学生だけでなく、新入社員 などにもみられます。 お疲れ様です。 4月にこうありたいと立てた目標からぶれないよう、自分を戒める意味で、記事を作成しました。モチベーション維持が難しいと、悩んでいる方々の助力となれば、幸いです。 モチベーションを維持する方法 モチベーションを維持するのは難しいですよね。しかし、ちょっとした工夫で、より長く高いモチベーションを保つことができます。まず、いくつかの方法を紹介します。 目標設定 SMARTな目標を
会社では通知したい情報をIncoming Webhook経由でSlackに通知しているのですが、項目を変更しようと思ってドキュメントを調べたところ、Webhook周りの方針がいつの間にか変更になっていたようです。 思ったより苦戦したので(とりわけドキュメントが英語しかなく)、把握できたところをまとめてみました。 1. Webhookの設定方法の変更 まず全体的な方針変更として、Incoming Webhookの設定方法が「Webhookアプリによるインテグレーション」から「個別アプリからの登録」に変更になったようです。 旧方式 これまでWebhookは https://{workspace-name}.slack.com/apps のアプリ画面からWebhookアプリにアクセスし、各チャンネルに対してカスタムインテグレーションなるもので設定するようなフローでした。 この方式ではインテグレー
はじめに 多くの勉強方法を試してきて、最後にたどり着いたのが問題駆動プログラミング法という学習方法でした 世の中では独学大全という本がベストセラーになるなど、学習内容ではなく、「勉強方法」を学びたいという人はとても増えています。 せっかく勉強するなら効率よくやりたいと考えるのは当たり前のことです。 成果を出したいならその分野の努力の仕方を学ぶのが1番効率的で賢い それは誰もが理解していることだと思います。 「では、プログラミングの勉強の仕方を学んだことはありますか?」 おそらく多くの人が自分なりに勉強をしていると思います。 なぜかというと勉強方法などの経験的な記事を書こうとすると「考え」を書くことになるため記事を書くのがとても大変でなかなか世の中には「これをやれば確実」という勉強方法を紹介している記事は少ないです。 これはエンジニアが基本的に「技術」を発信することが多くなるので仕方がないと
はじめに AWS Lambdaを使ってデプロイするときに、 Dockerイメージを使って、デプロイしたいケースがありました。 すでに、動いているLambdaをLambda Dockerへ変更する際に、 つまずきポイントがあったので、備忘録として、残しておきます Lambdaでコンテナイメージを利用とは? Lambdaには、通常のLambda(ソースコードのみを記述するタイプ)と Dockerイメージを利用するパターンが存在する ※Dockerイメージは、ECRから参照し、Lambda上で実行が出来る なぜDockerイメージを使うのか? 通常のLambdaとLambda Dockerには、仕様の一部に違う部分が存在している 今回、Lambda Dockerを利用したいと考えたのは、 通常のLambdaよりも、大きいパッケージを展開できる為 ●Lambda 50 MB (圧縮、直接アップロー
最近Pythonでオーケストレーション層(BFF)のアプリケーションを書く機会がありました。 Python3.4からはasyncioが導入され、I/Oバウンドな処理はシングルスレッドでも効率的に捌けるようになったものの、依然としてCPUバウンドな処理はGILが存在することで、シングルプロセス下では並列処理が制限されます。 このことから言語特性として、CPUバウンドよりもI/Oバウンドな処理を複数捌くことに適していると見ることができます。言語選択の意思決定をする際に重要なファクターとなりますが、そのためにはGILの仕組みを改めて知る必要があると思い、調べてみました。 GIL(グローバルインタプリタロック)とは そもそもGILとは何のことでしょうか。 正式にはGlobal Interpreter Lock(グローバルインタプリタロック)といい、PythonやRuby等の言語に見られる排他ロック
はじめに はじめましてほしいもです。 今回は年収が600万円アップした転職の話をしたいと思います。 自己紹介 30代前半 既婚、子どもあり 大学卒 16Personalities:ENTJ-T(指揮官) 転職結果概要 利用した転職サイト:ビズリーチ、リクルートダイレクトスカウト 利用した転職エージェント:Geekly 転職活動期間:6週間 転職前後の業種:BtoBの自社開発企業 → BtoCの自社開発企業 年収変動:700万 → 1,300万 転職動機 「今転職しなければ手遅れになるかも」 という感覚が、転職活動を始めた主な理由でした。 現職での待遇に特に不満はなかったものの、新卒入社した企業で既に10年が経過し、このままでは40代で転職市場に出た時に不利になるのではと不安を感じていました。 他にも大規模なプロジェクトが終わってキリが良かったことや、 ベテランの退職者が少ないので上が詰まっ
ナレッジベース共有ではなく、自分のためだけのクローズドなローカル環境で動作する点において差別化がされている。何かを発信するのではなく自分自身のためにテキストをまとめるのです。 このテキストも外出先で書いています。 金欠学生はもちろん格安を売りにしたプロバイダーと契約しているので3GB程度しか余裕がないはずです(私は月の半ばでなくなりました)。しかしローカルで動作するので速度制限を恐れることなく使うことができるのです。 Obsidianは単なるノートアプリではなくアイデアを書き溜め、思考をまとめ上げ、一つの思想を創り上げる、最強のセカンド・ブレインである。 —私 メリット 日常的に使えばマークダウン記法に慣れて、サークルや研究室のesaの記事を書く心理的ハードルが下がる QiitaやZennなどの記事を公開するハードルも下がる 有名な使い方としてはドイツの社会学者が考案したツェッテルカステン
1. はじめに 地理情報システム (GIS) で、使用するデータとして「Shapefile 形式」でデータ提供されていることがあります。この記事では、この Shapefile が、どのような構造となっているのかについて、説明していきます。 1.1. トポロジ構造とは Shapefile について説明していく前に、まずは GIS データ等でよく利用される「トポロジ構造」について説明しておこうと思います。 例えば、トポロジ構造を持つファイルとして、次のようなものがあります。 .gdb: ESRIのファイルジオデータベースは、トポロジを含む複雑な空間データを格納することができます。 .topojson: トポロジを保存するための拡張 GeoJSON 形式で、隣接する地物間の境界を共有することでファイルサイズを削減します。 .gml: 地理マークアップ言語 (Geography Markup La
はじめに 「テーブル・DBを設計するときのさいきょうの極意」を完全に理解したので 初心者(私)向けに共有する記事です。 どうぞ揉んでいただければ幸いです。対戦よろしくお願いします。 さいきょうの極意 初心者が「テーブル・DB設計して」と言われると、 「アソシエーションってあったよね・・・バリデーションも?中間テーブルを使うときと使わないときと・・・」と大変に混乱し、何から手をつけていいかわからなくなります。 そんなあなたにこれ! ・テーブル・DB設計は「属性」と「関係」の2つだけ ・「属性」は必要なものを書くだけ ・「関係」は 1:1 / 1:N / N:N しかない(しかも、ほとんど 1:N) これが極意だ!!! 一般的な、「ユーザーがいて、投稿ができて、コメントといいねができるサービス」で考えてみましょう。 users / posts / comments / likes のテーブルが
はじめに 今回紹介する本 「技術書」の読書術 達人が教える選び方・読み方・情報発信&共有のコツとテクニック ITエンジニア本大賞という企画でこの本のことを知り、 技術書のインプットが足りてないなと思う時期だったため、改めて技術書の読み方を学んでみようと思い読んでみました。 本書の構成を簡単にお伝えすると以下の3部で構成されております。 第1部 選び方 第2部 読み方 第3部 情報発信&共有 各部ごとに2人の著者それぞれが章を受けもってそれぞれ書かれている感じで、1冊の本なのですが、読書術を2人の視点から学べるお得な本となっております。 この本は次のような方におすすめできると思いました。 これから技術書を読み始める人 技術書を読んでいるがまだ数冊、読み方など考えたことがない 自己流でこれまで読んできているが他の人がどのように読んでいるのか知りたい この記事では「第2部 読み方」について特に印
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く