タグ

softwareに関するhiro14akiのブックマーク (15)

  • 徐々に高度になるリングバッファの話 - Software Transactional Memo

    リングバッファのイメージ図 1. リングバッファとは何か 機能的にはFirst In First Out (FIFO)とも呼ばれるキューの一種であるが、リング状にバッファを置いてそれの中でReadとWriteのインデックスがグルグルと回る構造をとる事によって容量に上限ができることと引き換えに高速な読み書き速度を得たものである。キューを単に実装するだけなら山ほど方法があって線形リストを使ってもいいしスタックを2つ使っても原理的には可能だ。その中でもリングバッファを用いた方法の利点はひとえに性能の高さでありメモリ確保などを行わないお陰でシステム系の様々な場所で使われている。 これの実装自体は情報系の大学生の演習レベルの難度であるが少し奥が深い。まずリングバッファのスタンダードなインタフェースと実装は以下のようなものである。 class RingBuffer { public: explicit

    徐々に高度になるリングバッファの話 - Software Transactional Memo
  • なぜ、ソフトウェアプロジェクトは人数を増やしても上手くいかないのか - Qiita

    はじめに ソフトウェアプロジェクトには不思議な性質があります。現状のスケジュールに課題を感じて、短くするために人員を投下しても、なかなか思い通りに短くならない。それどころか悪化してしまうことがあります。場合によってはプロジェクト自体が破綻して失敗してしまうことすらあります。 今回は、このようなソフトウェアプロジェクトに潜む直感に反する性質を数理的なモデルを介して理解していく試みです。ある種の思考実験としてお楽しみください。 宣伝 Qiitaさんとコラボ企画でアドベントカレンダーをつくりました。 DXをめちゃくちゃ改善した話を募集しています。 https://qiita.com/advent-calendar/2021/dx-improvement 10人の妊婦がいても1ヶ月で一人の子供は生まれない これは誰かの技術力やプロジェクトマネジメント力に欠陥があるのではなく、「人月の神話」で有名な

    なぜ、ソフトウェアプロジェクトは人数を増やしても上手くいかないのか - Qiita
  • コードが読めるソフトウェア開発者 - As a Futurist...

    僕はコードを読むのは得意な方だけど、それが過ぎてコードを書かなくてもシニアソフトウェア開発者になってしまった。実はコードをちゃんと読めるソフトウェア開発者って希少価値が高いのではないか、と思ったので自分がどんな感じでシニアになったのかをまとめてみた。似た様な人の参考になれば幸いだ。 同意。僕は未だ書く方はほとんど機会なく成果もないけど、コードを読み尽くして、負荷試験や番で挙動を把握し続け、メトリクスでとことん確かめていった結果、Sr. Engineer になれた。 https://t.co/KXtMdEaRr8 — Ryosuke Iwanaga (@riywo) April 16, 2021 コードを書かなくてもシニアソフトウェア開発者になれた 僕は今 Amazon の Sr. Systems Development Engineer という職種で働いている。いわゆるソフトウェア開発職

    コードが読めるソフトウェア開発者 - As a Futurist...
  • System Design

    Tech interviewers will often ask you to design on the whiteboard a complicated software system in 15 minutes. How is that even possible? Sometimes you would get asked to design a major feature from a system like Twitter or Facebook from scratch, for example. But these systems were built over a long period of time by big teams of engineers, you would say. In this course you will see what such syste

  • Technology Radar | An opinionated guide to today's technology landscape | Thoughtworks

    Thoughtworks Technology Radar is a twice-yearly snapshot of tools, techniques, platforms, languages and frameworks. This knowledge-sharing tool is based on our global teams’ experience and highlights things you may want to explore on your projects. Adopt Trial Assess Hold Adopt Trial Assess Hold Adopt Trial Assess Hold Adopt Trial Assess Hold Adopt Trial Assess Hold Adopt Trial Assess Hold Adopt T

    Technology Radar | An opinionated guide to today's technology landscape | Thoughtworks
  • なぜ今ソフトウェアテスト自動化に賭けるのか | chikathreesix

    こんにちは、Autify CEOの近澤(@chikathreesix)です。 先日会社の紹介資料を公開しました。大変嬉しいことに多くの反響を頂いているのですが、会社の紹介資料には自動化に賭ける僕の熱い想いは詰め込めきれませんでした。そこで、なぜ我々が今テスト自動化に取り組んでいるのか、なぜテスト自動化がこれからの社会において重要なのか、改めてブログにまとめました。 テストの大半が未だに人手ソフトウェアテストとは、開発したソフトウェアが正しく動作するか検証する作業のことです。ですのでソフトウェアを開発するあらゆる組織において、テストを実施する必要があります。市場は非常に大きく、IT予算の1/3をテストに使っていると言われ、その額は130兆円にも登ります。 この作業ですが、未だにグローバルで見てもおよそ75%の企業が人手に大きく依存しています。人手のテストは当然人件費と時間が多くかかるわけです

    なぜ今ソフトウェアテスト自動化に賭けるのか | chikathreesix
  • Software Architecture Guide

    When people in the software industry talk about “architecture”, they refer to a hazily defined notion of the most important aspects of the internal design of a software system. A good architecture is important, otherwise it becomes slower and more expensive to add new capabilities in the future. Like many in the software world, I’ve long been wary of the term “architecture” as it often suggests a

    Software Architecture Guide
  • 最近のソフトウェア工学に思うこと - bonotakeの日記

    なんかこのブログに記事書くの、ほんと久々だなと思うんですが。 最近ずっと思ってたことがあったので、つい勢いで書きなぐってしまいました。若干炎上商法かもしれませんが、まぁたまには?いいや。 長文ですがお付き合いください。特に、ソフトウェア工学の研究している皆さん。 昨日、とあるソフトウェア工学のシンポジウムにて、機械学習モデルをWebサービスにデプロイするためのハンズオン、という企画がありました。 僕が運営委員やってるMLSEとの共同企画で、僕は発案者の1人ですが、当日は1人の参加者として中に混じっていました。 4人グループに分かれての作業だったんですけども、僕以外の3人は、いずれもソフトウェア工学の研究をしている修士の学生さんでした。 で、ハンズオンも後半になって「Dockerの使い方」の演習になったのですが、その3人ともDockerに触ったことがなさそうな雰囲気でした。いちいち確認したわ

    最近のソフトウェア工学に思うこと - bonotakeの日記
  • 分散キューという名の苦しみ - Software Transactional Memo

    TL;DR 分散システムにおいてキューを導入する場合、当にキューが必要なのか再考すべき。そこが地獄の入り口だから。 システムの抽象 コンピュータの世界は、来は0と1の信号の羅列が飛び交う無機質なものである。でも人類は信号だけですべてを語らず、様々な喩えを定義してきた。それはデスクトップ・ウィンドウ・マウスカーソルといったグラフィカルな表現に留まらず、パケットやカプセル化といった用語にロック・キュー・リスト・木などのアルゴリズムやデータ構造の世界にも自然に溶け込んでいる。これらはすべて人間の理解を助けるための喩え話に過ぎず、この喩えこそが人間のより直感的な理解をもたらす一方で、発想の制約を生み出してきた。 人間が大きなシステムを作るときも何らかの喩えを用いてシステム全体を整理する。アーキテクチャの「ポンチ絵」を描いて情報共有をするのは企業に勤めていれば経験した人も多いだろう。パワーポイン

    分散キューという名の苦しみ - Software Transactional Memo
  • チーム開発を始める時に決めること - GeekFactory

    頭の中を整理するために、新たにチーム開発を始める時に決めることをリストアップしてみました。すべて書き出すと大量になるので、プロセスや開発基盤を中心に書いています。 プロジェクト計画 ゴール マイルストン スコープ リリース計画 プロセス チーム構成 リスクと対策 プロセス スプリントスケジュール(例:月曜開始の1週間スプリント) 会議体の設定(例:スプリント計画、スプリントレビュー、レトロスペクティブ) 複数チームのワークフロー(例:プロダクトオーナー、UXデザイナー、開発チーム、QAチーム) 仮説検証サイクル(例:仮説設定、リリース、分析) 進捗管理方法(例:リリースバーンダウン) 品質管理方法 障害対応のワークフロー プロセス改善の仕組み(例:レトロスペクティブ結果のバックログ化) プロダクトデザイン(略) ソフトウェアアーキテクチャ(略) インフラアーキテクチャ(略) テスト計画(略

    チーム開発を始める時に決めること - GeekFactory
  • ソフトウェアテスト - Wikipedia

    ソフトウェアテスト (英: software testing) は、コンピュータのプログラムから仕様にない振舞または欠陥(バグ)を見つけ出す作業のことである。ソフトウェアテストで見つかったプログラム中の欠陥を修正する作業をデバッグという。ソフトウェアテストに成功するとは、テストで欠陥が発見されるか、規定した試験項目にすべて合格するか、規定した品質目標に到達することである。目標とした品質には、規定した試験項目にすべて合格することもある。例えば、OS, プログラミング言語では、仕様を満たしているかどうかの適合試験を規定している。ソフトウェアテストでは、欠陥が存在することを示すことはできるが、欠陥が存在しないことは証明できない。ソフトウェアに仕様にない振舞がないことを保証する作業を証明といい、証明用のシステム、証明しやすい言語も多数存在している。項では動的なソフトウェアテストを中心に扱う。 目

  • IDCF テックブログ

    こんにちは、クラウドエンジニアリング部プラットフォーム開発部の山下です。 先日、東京有明で開催されたCloudNative Days Tokyo 2023(以下、CNDT2023)の様子とイベントを通じた感想をお話ししたいと思います。 CNDT2023について CNDT2023 決済システム内製化のその先に 〜 クラウドネイティブな開発を"スケール"させるために必要だったこと イオンKubernetesを採用してどうなった? 100万コンテナのKubernetesプラットフォームを5年間スケーラブルに運用するために乗り越えていること CloudNative環境におけるトラブルシューティングガイド アプリでコンテナを動かす環境は? カンファレンスを通して 最後に 続きを読む こんにちは、藤城(@tafujish)です。 最近、生成AIをはじめAIとそれを動かすGPUの拡がりはすごいですね

    IDCF テックブログ
  • ついに登場! 究極の見積もり技法(その1:解説編)

    「ソフトウェア技術者の最高の能力は、見積もりだ!」――今回は、パラメトリックス法の1つ「SLIM」を取り上げます。上司からのムチャな開発期間の短縮要求をはねのける“究極の反撃法”が、このSLIMによる見積もりです。 「見積もり」は、ソフトウェア開発における大きなテーマであり、ソフトウェア工学における最重要課題の1つでもあります。 今回お届けしている“見積もり・シリーズ”では、「見積もりの目的(正確に見積もるだけでは不十分)」「見積もりの具体的な方法(精度を上げるため、少なくとも、2つ以上の方法で見積もる必要がある)」「見積もりの応用(見積もり値に合わせる制御と再見積もり)」「見積もりの調整(状況に応じて開発量とスケジュールを再見積もりしなければならない)」について、具体的に解説していきます。 見積もり技法は「類推法」「積み上げ法」「パラメトリックス法」の3つに分類することができます。前回は

    ついに登場! 究極の見積もり技法(その1:解説編)
  • Graphviz

    Please join the Graphviz forum to ask questions and discuss Graphviz. What is Graphviz? Graphviz is open source graph visualization software. Graph visualization is a way of representing structural information as diagrams of abstract graphs and networks. It has important applications in networking, bioinformatics, software engineering, database and web design, machine learning, and in visual inter

  • nanapi 勉強会 vol.4 #nanapi_study に参加してきました - めも帖

    10月2日に「はてなとnanapi の開発フロー nanapi勉強会 vol4」に参加してきました。 そのときのメモです はてなとnanapi の開発フロー Twitter で話して決めました 福岡でvol3はやった 合同開催なので、来週は京都 IGNITION チーム @vexus2 our service nanapi 月間 2,500万UU answer あついサービス IGNITION http://ignition.co/ 新聞のコラムのようなサービス メディア 話すこと 開発フロー 開発フローの選定 PhpStorm のことは話さない チーム ディレクター:1人 編集:1人 エンジニア:2人 デザイナー:1人 開発の流れ 一般的な流れ スクラム 物理かんばん(ホワイトボード)を使っていた ふせんとissueの二重管理 振り返りのときに看板の移動が面倒 ログとして残すのが辛い 代

    nanapi 勉強会 vol.4 #nanapi_study に参加してきました - めも帖
  • 1