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

  • オブジェクト指向は業務システムで本当に不要なのか? - Qiita

    主旨 以前はシステムの状態をオブジェクト指向でカプセル化し、オブジェクト同士の通信でシステムの制御をしようとしていた しかし、Webアプリケーションのように状態をメモリ上に保持し続けるのが難しい環境が増えると、上記のことがやりにくくなった(ORMのインピーダンスミスマッチの影響が大きくなった) 現在では、システム全体の状態を管理するためにオブジェクト指向を用いるシーンは減っているが、要所要所でシステムを抽象化する道具の一つとして用いるシーンはあり、適材適所で使い続ければ良い はじめに 一時期あれだけもてはやされた「オブジェクト指向」ですが、現在では「業務システム開発においてオブジェクト指向で作るとろくなことがない」、とか、いっそ「不要である」、という意見もよく見かけます。 オブジェクト指向、この記事では特に「オブジェクト指向プログラミング」を対象として話をしますが、その利点は以下の3点に集

    オブジェクト指向は業務システムで本当に不要なのか? - Qiita
    shikiarai
    shikiarai 2024/02/13
    こんな話は楽しいけど顧客は誰も喜んでくれない
  • 障害対応で大切だと感じていることのまとめ - Qiita

    私個人の障害対応の経験と 一昨日参加したIncident Response Meetup vol.1での学びから 障害対応において大切だと感じていることをまとめる。 障害とは リリース後のシステムにおいてシステムの不具合やユーザーの操作ミスによってユーザー業務に影響が出ているもしくは出る恐れがあるもの。 障害対応の目的 システムを直すことではなく、ユーザー影響の回避・低減・早期回復をすること。 障害対応に対する心構え システムの信頼性の要である 障害への対応の仕方でユーザー影響が大きく変わる いつ発生するかわからないため特定の人が常に障害対応をするということは不可能である 素早く適切に行動するための備えが重要である 役割分担 障害対応では復旧対応、原因調査、ユーザーへの説明、社内調整などたくさんのことをやる必要がある。 またそれぞれの作業の難易度が高いことも多い。 一人の人間にできることは

    障害対応で大切だと感じていることのまとめ - Qiita
    shikiarai
    shikiarai 2024/01/19
    ・仲間を呼ぶ
  • 祖母が就寝するとDBインサートができなくなる - Qiita

    世の中には、一見関係なさそうな物理現象がITシステムに不可思議な影響を及ぼすことがあります 例えば,500マイル以上離れた場所にメールが送れないという話だったり 中国人のAさんがお茶を入れると会社のネットが繋がらなくなる という話があります。 私の場合は、祖母が就寝するとDBインサートが失敗する、という状況でした 実家の見守りシステム 問題が起きているのは、離れた実家にいる一人暮らしの祖母の状態を見守るために作成した自作のシステムです。 気温や湿度、CO2濃度、明るさ、部屋のドアの開閉、冷蔵庫の開閉の状況をモニタリングできるようにしています。 Raspberry Piに各種センサが接続され、定期的にInfluxDBに送信し、Grafanaという可視化ツールでいつでも見られるようにしています。 これらの情報を見ることで、祖母の家の部屋の温度が適切か、活動しているか、部屋にいるかなどが分かりま

    祖母が就寝するとDBインサートができなくなる - Qiita
    shikiarai
    shikiarai 2024/01/08
    excelの数値読み込みさせられてまさにxx.0の時は整数扱いになって型エラー出してたわ
  • 「0.1+0.2≠0.3」を説明できないエンジニアがいるらしい - Qiita

    この記事はNuco Advent Calendar 2023の4日目の記事です。 弊社では、経験の有無を問わず、社員やインターン生の採用を行っています。 興味のある方はこちらをご覧ください。 はじめに 後輩に 「なぜ0.1+0.2≠0.3になるんですか?」 と聞かれて答えられますか? コンピュータの計算では「0.1+0.2」は「0.3」になりません。 これを理解していないと予期せぬ重大なバグを生み出す可能性があります。 分からない方、どうぞ安心してください。 この記事を読んだ全員が「0.1+0.2≠0.3」を理解できるように分かりやすく説明していきます。 コンピュータが計算を間違う理由 まず、そもそも「0.1+0.2=0.3」で正しい!「0.1+0.2≠0.3」なんてあり得ない! という方のために、プログラミング言語のフォーマット処理を経ない、コンピュータの計算結果を見てみます。

    「0.1+0.2≠0.3」を説明できないエンジニアがいるらしい - Qiita
    shikiarai
    shikiarai 2023/12/05
    丸め誤差かぁ? 丸め誤差の話だったら煽りタイトルやめろって言うゾォ。やめろおおおおってなった。良い加減にして欲しい。リーナスですら人の心を獲得したのに
  • MySQL 5.7 から 8.0 にしたらテストが激遅になった - Qiita

    この記事は、株式会社カオナビ Advent Calendar 2023 の3日目です。 はじめに 株式会社カオナビの高橋(@kunit)です。 今回は MySQL バージョンアップ(5.7 -> 8.0) で起きた問題とそれに対してどのように対処したのかを書いていこうと思います。 何が起きたのか MySQL 5.7 から 8.0 にバージョンアップをするにあたって、CI およびローカル環境でテストができるように MySQL 8.0 のイメージを作成し、それをつかって各機能の担当者にテストを開始してもらっていたのですが、以下のような事が起きました。 接続を MySQL 5.7 から 8.0 に切り替えただけでテストの時間が3倍くらいかかるようになった そこを変更するだけで3倍遅くなるってやばいぞということで報告してくれた担当者と同じテストを自分でも実施してみると再現性があり、それが以下のどの

    MySQL 5.7 から 8.0 にしたらテストが激遅になった - Qiita
    shikiarai
    shikiarai 2023/12/03
    REDOログ無かったんだ……もうずっとoracleしか触れてないからmysql忘れちゃったな
  • エンジニアに読んで欲しい技術書90選 - Qiita

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

    エンジニアに読んで欲しい技術書90選 - Qiita
    shikiarai
    shikiarai 2023/11/01
    何だかねぇ
  • 月10万円の売上を目指して、個人開発でやったこと全てを公開 - Qiita

    何の話 エンジニアの勉強として始めたWebサービス個人開発。 せっかくやるなら収益化をしようと思い、個人開発2作目にして、売上月10万円を目標にサービスをリリースしました。まだ目標の売上は達成出来てないですが、その収益化モデル、サービス内容の確定、デザイン、システムアーキテクチャ、など全てを公開しようと思い、ブログを書きました。 私はつよつよ個人開発者ではなく、1年前に組み込みエンジニアからWeb系に飛び込んだ若輩者なので、悪しからず。 [公開したサービス] オンライン動画学習のランキングサイト | Tech Course Rank 後半で詳しくサービスについて、説明します。 プロフィール 大学卒業後、セキュリティ製品のサポートエンジニア -> Webエンジニア -> ロボット系の組み込みエンジニア-> Web系のエンジニアという経歴です。現在30才。 得意言語は、Python。フロ

    月10万円の売上を目指して、個人開発でやったこと全てを公開 - Qiita
    shikiarai
    shikiarai 2023/10/28
    ビットコインでも掘ってた方が稼げるんじゃない?
  • 私がエンジニアをイラっとさせてきた質問時の態度5選 - Qiita

    上司に質問をすると、いつも相手を不機嫌にさせてしまいます…」 このような悩みを持つエンジニアは少なくないのではないでしょうか。実際、誰もが「こんな質問をして怒られたらどうしよう」と躊躇したことがあるでしょう。 ただ、もしかしたらその悩みは簡単に解消できるかもしれません。なぜなら、エンジニアがイラっとする質問の態度はある程度きまっているからです。質問者として適切な態度を理解することで、質問が改善されるはずです。 はじめに まず、これは全員の共通認識だと思うのですが、大前提として『質問をすること』は難しいです。ですので、この記事ではあえて「良い質問」と「悪い質問」の違いには触れません。その手の議論にはすでに飽き飽きしているからです。 次に、エンジニアという生き物について説明します。多くのエンジニア技術力を身につける必要があるため勤勉家な人が多いです。少なくとも私は「自分で学ぶ気のない人に厳

    私がエンジニアをイラっとさせてきた質問時の態度5選 - Qiita
    shikiarai
    shikiarai 2023/10/23
    イライラする時は質問相手の普段の態度が気に食わない時とかかな。レビュー依頼投げてきて10個指摘したら2個だけ直して全部直しましたとか言ってきたり、朝一に打ち合わせお願いしてきて本人が寝坊したり
  • プログラミングは英語圏の人が圧倒的に有利、もはや卑怯なレベル - Qiita

    プログラマーへの道、備忘録 略歴 90年代のAppleとAdobeのDTP革命の熱に浮かされて、薬科大学を中退後、グラフィックとウェブデザインを独学し、フリーランスとしてウェブ系の仕事を5年ほどしつつ、その後はモノ作り中心のデザイナーに転身。 ITエンジニアとしてビリオネアとなったドイツ投資家との縁で、彼の所有する外資系リゾートにて支配人として10年ほど働く。 が、コロナの厄災にて観光業が壊滅。失業状態。 非常事態宣言下のフィリピンにて、Amazon初期にバイスプレジデントを努めた投資家より、巣ごもり中にITプロジェクトへのオファーと、数ヶ月の自習期間を与えられる。 20年ぶりに見るWEB開発のノウハウは、HTMLCSSPERLでコツコツ書いていた20年前とは別世界であり、戦後からタイムスリップした様な気分で、ゼロから勉強し直さないと全くついて行けないと絶望する。 自習とは自分との戦

    プログラミングは英語圏の人が圧倒的に有利、もはや卑怯なレベル - Qiita
    shikiarai
    shikiarai 2023/10/07
    AWSの説明なんて英語でもまったく意味わからんのあるが
  • 英語が話せてプログラムも書けるようになったのでより就職が難しくなった件について - Qiita

    英語が話せてプログラムも書けるようになったのでより就職が難しくなった件について 最初の記事にも書きましたが、日を離れて10年以上、外資系の企業にて外国人と働き、または交渉事などをまとめ、何処に行ってもそれなりに不自由しない英語力を獲得し、さらにロックダウン中から2年あまり、毎日毎晩独学でコードを書き続けたことによって獲得したプログラミングスキルによりウェブアプリなどを自作できるようにまでなった訳ですが、そうして身につけた能力をフルに生かして条件の良い働き口を見つけてこましたろ と思った時に、そういった能力が身を助けるどころか、よりレッドオーシャンの荒波に我が身を晒すことになったことに気付き、愕然としてこの記事を執筆しています。 英語ができることによって競争が激化 例えば、自分は英語も話せて、プログラミングも出来ますよ となった場合、勿論グローバルな企業にて雇用されることを期待する訳ですが

    英語が話せてプログラムも書けるようになったのでより就職が難しくなった件について - Qiita
    shikiarai
    shikiarai 2023/10/06
    プログラマーじゃなくてITちょっとだけ分かる非IT部門に入ってDX推し進める方が経歴的にも合うんじゃないの知らんけど。素晴らしい包丁も眺めてるだけじゃ人生は豊かにならんよ。正しく使え。
  • Twitterはタイムラインをどうやってキャッシュしているか - Qiita

    Twitterの内部構造を読解してみる 前口上 Twitterのようなマイクロブログサービスでは短時間で書き込みも多く、特にタイムライン周りは単にRDBのデータを出し入れるするだけではスケールしなくなります。 インターネット上に断片ながらTwitterの中の人がアーキテクチャについて解説した記事や動画がいくつか落ちていたので、Twitterがタイムラインをどうやってキャッシュしているかについてまとめてみたいと思います(推測を含みます)。 Twitterのテーブル構造 単純なTwitterのテーブル定義をRDBで定義すると以下のようになると思います。 tweets ツイート id user_id contents tweet_at followers フォロワー source_user_id destination_user_id users ユーザー id user_name timeli

    Twitterはタイムラインをどうやってキャッシュしているか - Qiita
    shikiarai
    shikiarai 2023/09/28
    大変なのよね
  • awkが新しくなる!? 本家AwkがUnicode (UTF-8)とCSV対応に! - Qiita

    はじめに 2023年、長い時を経て awk がとうとう Unicode (UTF-8) と CSV に対応しました 🎉🎉🎉 awk で日語がうまく扱えない(場合がある)、Excel が出力する CSV ファイルが扱えない(場合がある)、といった問題が解決に向けて一歩に進みます。 去年、家 awk (One True Awk, nawk) に Unicode サポートが Brian Kernighan の手によって追加されたと話題になった(参照)ことを覚えているでしょうか? Brian Kernighan が誰だか知らない方がいるかもしれないので説明すると、オリジナルの awk の開発者の一人で awk の頭文字、Alfred Aho、Peter Weinberger、Brian Kernighan の一人です。通称「K&R」の「プログラミング言語C」や「プログラミング言語AWK」

    awkが新しくなる!? 本家AwkがUnicode (UTF-8)とCSV対応に! - Qiita
    shikiarai
    shikiarai 2023/09/17
    awkまだめっちゃ使ってるけど大したことしてないしもとからgawkしか使ってないから関係なかった
  • えっ、まだChatGPT使ってんの? Bingは無料でGPT-4使えますよ! - Qiita

    はじめに こんなタイトルをしていますが、私はChatGPTを悪く言う意図は全くありません。ChatGPTは非常に優れた製品ですし、実際に、世界はChatGPTによって大きく変わりました。LLMを大きく普及させた先駆者として、とても偉大な存在です。 今回は、利用料金に焦点を当てた話になります。 Chat GPT Plusを使いたいけど(もしくは、使っているけど)、ちょっと金額が高いな・・・と感じている方に向けた記事になりますので、ご理解いただけると嬉しいです。 ChatGPT、ちょっと高い・・・! GPT-4、精度が高くていいですよね! 僕もプログラムを書くときや、採用するプロダクトを決めるときなんかによく使っています! でも、ChatGPTのGPT-4を使うには、月額3,000円(※)を払う必要がります。 会社が払ってくれるのなら全く問題ないのですが、個人で使うとなると、正直ちょっと高いっ

    えっ、まだChatGPT使ってんの? Bingは無料でGPT-4使えますよ! - Qiita
    shikiarai
    shikiarai 2023/09/15
    どうせ煽りタイトルだろうからそこだけ殴りに来た 本文はもちろん読んでない
  • ほんとうにあった開発生産性が爆下がりする話 - Qiita

    昨今、継続的にプロダクト開発していくことが主流となり、Four Keysなどの開発パフォーマンスを測る指標なども出てきており開発生産性を向上させることが注目されています。 しかし、かつての開発現場では今では信じられないような開発生産性を爆下げするようなことをやっていました。 この記事では10年以上前に私が経験した開発生産性を爆下げする事例を書いていこうと思います。 (私が体験したことをベースに書いているので10年前は全てがこうだったということではないのでご留意ください ) 修正前のコードはコメントアウトで残す 当時、ウォーターフォールで開発していました。 ウォーターフォールでは開発工程とテスト工程が分かれています。 開発工程で一通りコーディングして、テスト工程で動作確認を行いバグを潰します。 問題はここからです。 とある現場では、テスト工程でバグを直すときにコードを破壊的に直すのではなく、

    ほんとうにあった開発生産性が爆下がりする話 - Qiita
    shikiarai
    shikiarai 2023/09/12
    設計書の印刷納品なんて大したことないよ。ソースコード印刷して納品するよ。
  • インシデント共有方法に格の違いを感じ勝手に敗北感を味わった話 - Qiita

    私は普段、お客様のチームに入り込み、SEとして仕事をしております 今日はそのチームで実際に起こった出来事からなぜか勝手に敗北感を味わった話をしたいと思います まずなにがあったか 普段すでに番運用がされているシステムに新規要件を実装してまして、定期的に新機能をリリースするようなそんな運用となっています そんな中のある日、定例(朝会)の中で、直近リリースで発生したインシデントの共有がありました えーっと実は昨日〇〇という障害が番環境で発生してその対処をしてました 調べてみた結果、原因は〇〇さんのこのプルリクでして (私:おいおい個人名だすのか!! このファイルのこの行でNullチェックが漏れてました (私:わわわわ、公開処刑だぁぁぁ まぁたしかにこの辺はほげほげふがふがで (私:ふむふむさすがにフォロー入るかぁ でもテストやレビューでちゃんとカバーしときたかったですね (私:全員巻き込んで

    インシデント共有方法に格の違いを感じ勝手に敗北感を味わった話 - Qiita
    shikiarai
    shikiarai 2023/09/10
    別に犯人くらい特定してもええやろ。どうせボーナス査定の時にはみんな忘れてるんだから
  • 今さら聞けないログの基本と設計指針 - Qiita

    はじめに 皆さんのログに対する理解はどんなものでしょうか?仕組みから設計方法まで完璧に理解しているエンジニアもいれば、なんとなく使用しているエンジニアも多いことでしょう。 ログとは、システムに着いてエラーや障害の発生、利用者による操作や設定の変更、外部との通信などを時系列に記録したものです。ログに関する理解を深めることで、複雑なシステム開発や運用が可能となります。また、AWS、Azure、GCPなどのクラウドサービスを利用している場合はシステムの開発が可能になるだけでなく、経費削減に繋がる可能性も考えられます。 記事では、ログの基を押さえるためにその設計方法について解説します。少しでも自信がない方は、ご一読ください。 ログを出力する理由は? ログの基や、ログの設計について解説する前にそもそもログを出力する理由を押さえましょう。大きく4つの理由が考えられます。 ・問題が発生した時に調査

    今さら聞けないログの基本と設計指針 - Qiita
    shikiarai
    shikiarai 2023/09/06
    新しいシステムが開発側から送られてくるたびにログ設計どうなってんだ!ってブチ切れてる。ログ上は原因不明なエラーだけど詳しくヒアリングすると単に文字長オーバーしてるだかとかならまだ良い方
  • 【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita

    はじめに もう文字列の置換で sed コマンド使うの禁止して良いんじゃないですかね? 言いすぎだとわかってあえて言っていますが。 悪い書き方(外部コマンドに頼る方法) # 変数 line に入ってる文字列を echo コマンドで出力して sed コマンドに渡し、 # sed の s コマンドで "from" を "to" に置換して出力したものを ret 変数で受け取る ret=$(echo "$line" | sed "s/from/to/")

    【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita
    shikiarai
    shikiarai 2023/09/02
    みんな言ってるけど馬鹿向けにはシェルネイティブよりsedの方が説明しやすい。私も引継ぎ相手もみんな馬鹿。sedやbashに興味ある人種はそもそも引継ぎを必要としないので対象外
  • 1on1で質問をする側になって「工夫したこと」と「気づいたこと」 - Qiita

    プロジェクトでの進捗確認ミーティングもありますが、進捗を聞くだけに終始してしまいます。「働くこと」にもう少し視野を広げて、いろいろ聞いてみることがあります。1on1です。進捗確認MTGとは別の事柄を聞けます。以前は、1on1で質問される側でしたが、最近は1on1で質問をする側になったので、気づきをメモしておきます。 1on1の目的 1on1の目的は、(私の場合は)「心理的サポートをすること」です。別の言い方をすると、「働くことを通じて自己実現ができそうか/できているかを念頭に置き、会話を通して、精神面や志向についてプラスを大きく、マイナスを小さくするように働きかけること」です。 その上で、①働き方仕事内容の確認、②不安心配事の検知・助言、③成長・改善の意識付けという3つの観点から、プラス面、マイナス面を把握し、プラスを大きくマイナスを小さく働きかけます。 また、1on1をするときの基的な

    1on1で質問をする側になって「工夫したこと」と「気づいたこと」 - Qiita
    shikiarai
    shikiarai 2023/08/27
    部下側の目線としては業績評価ポイントをまとめておいて、それに絡めて話をすることですかね。いかに不調を外的要因に押し付けて好調を内的要因のおかげだと言うか
  • 技術に興味がなくて何が悪い? - Qiita

    TL;DR 技術に興味がなくても、エンジニアとして生きていくことはできる。 対象読者 自分を技術に興味がない側の人間だと思う方 筆者について Webアプリケーションの開発エンジニア。主な仕事はプログラム詳細設計、画面設計、コーディング。 技術にあまり興味がない。 初めに エンジニア界隈では、以下のような主張がしばしば見られる。 休日に勉強するべきである。 最新の技術動向は常にチェックするべきである。 技術イベントには参加するべきである。 毎日コードを書くべきである。 レガシーな技術ではなく、モダンな技術を習得するべきである。 etc... そしてこれらの"べき論"がさらに加速すると、 「技術に興味がない人はエンジニアに向いていない」 という主張すら出現し、それに同調する声も少なくない。 最近、とあるSNSで以下のようなやり取りを見かけた。 駆け出しエンジニアの質問 休日に勉強するべきですか

    技術に興味がなくて何が悪い? - Qiita
    shikiarai
    shikiarai 2023/08/15
    勉強したくないからエンジニアにならない!と言う選択肢を取るやつは結局どこ行っても勉強するからその選択は無駄だよっていう話
  • 「なんで、for文ってforなの?」って、みんな思ったはず。 - Qiita

    words = ['Japanese', 'English', 'French'] for w in words: print (w) # 結果 Japanese English French 同じ処理を繰り返すので「ループ処理」とも言われます。ではなぜloopじゃなくて、forなのか?と思いますよね。おれもそう思い、3年くらい経過していました。 ちなみに、別でwhile文もループ処理になります。 ちなみに、使い分けとしては、 for文: 繰り返し回数を指定したい処理 while文: とにかく条件ごとに値を処理 という使い分けができそうです。 題:for文は如何にしてforなのか。 そろそろ題に入りましょう。 なぜ、for文はforでループ処理なのか? 調べてみました。 そもそも、ループ処理の種類の表し方は? ループ処理では、whileやforがあることはご存知の通りかもしれませんが、

    「なんで、for文ってforなの?」って、みんな思ったはず。 - Qiita
    shikiarai
    shikiarai 2023/08/13
    その調子でwhileの意味も調べて欲しいしforeachにも思いを馳せて欲しい