タグ

開発に関するWackyのブックマーク (616)

  • 「バグを減らすために『気をつけて』作る」のではなく「バグらせるのが難しくなるように『考えて』作る」 - s平面の左側

    この記事について 「Willgate Advent Calendar 2018」11 日目の記事です。 記事が投稿された日付は気にしてはいけない。いいね? きっかけ およそ 2 ヶ月前に下書きになっていた記事があったので掘り返し。 この記事を書き始めたころの twitter のタイムラインにこんなツイートが流れてきました。 エンバグを断罪するような思考そもそも気に入らない。個人の注意力に依存するのは工学的じゃない。罪はバグが発生しやすい設計にあると考えるのがエンジニアじゃないの? って思う。個々のバグに対して迷惑被ったと怒るのはエンドユーザー視点しかない人だと思う— 田中ひさてる (@tanakahisateru) 2018年10月2日 私もこれに近い考えをずっと抱いてきていたので、引用リツイート + コメントせずにはいられませんでした。 当にこれ。 バグらないように「気をつけて」作るん

    「バグを減らすために『気をつけて』作る」のではなく「バグらせるのが難しくなるように『考えて』作る」 - s平面の左側
    Wacky
    Wacky 2019/01/06
    “バグる余地が無いように『考えて』作る”
  • できる! コンパイラ作成の資料まとめ

    あけましておめでとうございます。今年もよろしくおねがいします。艮鮟鱇です。 さてつい先程、友人から「冬休みに言語処理系ちょっと書いてみたいんだけどいい資料ない?」(意訳)と言われました。新しい年も始まりましたし、これを機にコンパイラ・インタプリタを書き始める人も少なくないこともないかもしれません。 ということで私が把握している言語処理系開発のための資料を以下に一覧します。上から順に見ていって、自分に合うものを探して頂ければと思います。私がよく知っているものを並べたので、全体的にCコンパイラよりです。「自分が開発するときに見るやつが載ってない!」という方は是非コメントをくださるか、 Twitterで雑にリプライをお願いします。 低レイヤを知りたい人のためのCコンパイラ作成入門セキュキャン2018 Cコンパイラ開発ゼミの講師の一人、Rui UeyamaさんのCコンパイラ作成入門資料です。タイト

    できる! コンパイラ作成の資料まとめ
  • Suicaのシステムがいかにすごいか仕組みを徹底解説 - 炎と硝煙にむせる開発現場から

    Suicaの凄さ サービスを落とさないための「自立分散高速処理技術!」 ものすごい処理量をこなす緻密な速度改善 お金を扱うからこそ間違わない仕組み 当時は最先端の非接触ICカードを採用 非接触ICカードの歴史 年寄りも当たり前に使えるサービス だからSuicaは6000万枚も普及した まとめ Suicaの凄さ ものすごい処理量(1日4000万件) 全然サービスが落ちない 年寄りも使っている Suicaがない社会なんて今や想像できないですよね?東京でSuica持ってない人はいないくらい普及していますし、レストランやコンビニでSuicaを使って買える場所も普通になってきました。普通に考えて、1日4000万件も処理して0.1秒以内に処理を完了させないといけないシステムなんて無茶苦茶難しくないですか?しかも、Suicaがリリースされたのは2001年です!ちょこっと調べてみたすごいブレークスルーの数

    Suicaのシステムがいかにすごいか仕組みを徹底解説 - 炎と硝煙にむせる開発現場から
    Wacky
    Wacky 2018/12/28
    “中央が死んでも駅サーバで処理できちゃう!キューのような仕組みになっていて、データをある程度蓄積し、通信が確立されれば、より上位のサーバ(改札<駅<中央)にデータを複製することで間違いが起きずに中央集
  • Go のライトバリアに関するバグを修正した話 : DSAS開発者の部屋

    Goのランタイムのバグを踏んで解決しました。解決までの過程を記事にします。 同じようなランタイムのバグを踏んで、小さい再現コードを作れない場合の参考にしてください。 自分のプログラムを疑う あるSlackチャンネルで Go で書かれたサーバーのクラッシュが話題になっているのを見つけました。その時に共有してもらったトレースバックです。 runtime: pointer 0xc007b8af97 to unused region of span span.base()=0xc004000000 span.limit=0xc004002000 span.state=1 fatal error: found bad pointer in Go heap (incorrect use of unsafe or cgo?) runtime stack: runtime.throw(0xc046ca,

    Go のライトバリアに関するバグを修正した話 : DSAS開発者の部屋
    Wacky
    Wacky 2018/12/28
    “docker-compose を使った開発環境構築手順を教えてもらい、現象を再現できるようになるまで試験環境との差異を調べて減らしていきます。”
  • ゲーム開発版「やらかし先生」? 海外の開発者たちが失敗談を共有。なぜ動くかわからないプログラムから力技で解決したバグまで

    ゲーム開発版「しくじり先生」? 海外の開発者たちが失敗談を共有。なぜ動くかわからないプログラムから力技で解決したバグまで 『Gone Home』や『Tacoma』のデベロッパーFullbrightの共同設立者のひとりであるスティーブ・ゲイナー氏が、ゲーム開発における恥ずかしい「しくじり」を広く募集している。12月14日に投稿されたツイートには17日時点で1000近いリプライが寄せられ、笑えるものから恐ろしいものまでさまざまな失敗談が紹介された。 please share your most embarrassing game dev crimes. Mine: all the scripting in Gone Home is contained in 2 gigantic uScript graphs, bc I didn't know about interlinking many s

    ゲーム開発版「やらかし先生」? 海外の開発者たちが失敗談を共有。なぜ動くかわからないプログラムから力技で解決したバグまで
  • 今日からはじめるGitHub ~ 初心者がGitをインストールして、プルリクできるようになるまでを解説|ハイクラス転職・求人情報サイト AMBI(アンビ)

    今日からはじめるGitHub ~ 初心者がGitをインストールして、プルリクできるようになるまでを解説 エンジニアであれば、チーム開発ではもちろんのこと、個人開発でもGitを用いてバージョン管理していきたいもの。今回は、GitGitHubをはじめて使う人に向けて、導入から初歩的な使い方までを解説します。 ソースコードの管理はできていますか? ファイルを修正するときに、修正前のソースコードをhoge.php.bakのようなバックアップファイルとして残し、開発環境をゴミだらけにしていませんか? エンジニアであれば、チーム開発ではもちろんのこと、個人開発でもGitを用いてバージョン管理していきたいもの。今回は、GitGitHubをはじめて使う人に向けて、導入から初歩的な使い方までを解説します。 ここではGitの詳細な仕組みには触れません。GitGitHubを利用したことのない人が、Git

    今日からはじめるGitHub ~ 初心者がGitをインストールして、プルリクできるようになるまでを解説|ハイクラス転職・求人情報サイト AMBI(アンビ)
  • QA担当者視点で「Androidテスト全書」の特に読んで欲しいポイントをまとめる - びよーんのつま。

    Androidテスト全書」をとりあえずざっくりと読んだので、QA担当者視点で開発者・QA・PM問わず「ここは読んで欲しい」と思ったポイントをまとめる。 peaks.cc 目次 目次 TL;DR 前提 「第1章 テスト入門」 「第4章 UIテスト(概要編)」 全体を通して TL;DR まず「Androidテスト全書」発売おめでとうございます。執筆者・関係者の皆さま当にお疲れ様でした。 今回の記事は普段のブログ運用ルールによると「エモいことを書くブログ」に書くべき内容なのですが、Android Test Night #5 - Androidテスト全書の回の聴講席がご用意されたため、ある意味名刺代わりにこちらの技術メインのブログに書くことにしました。 testnight.connpass.com 前提 この記事は「Androidテスト全書」をもう読んだ人、あるいはこれから読もうと思っている人

    QA担当者視点で「Androidテスト全書」の特に読んで欲しいポイントをまとめる - びよーんのつま。
  • 銀の弾とアジャイルについてのメモ (Agile is a Silver Bullet) - ari's world

    銀の弾とアジャイルについてのメモ (Agile is a Silver Bullet) 2018年10月9日 要点 1986年にソフトウェアエンジニアリングについて書かれたフレデリック・P・ブルックス氏(以下、Brooks)『人月の神話』「銀の弾はない」はすごい(久しぶりに読み返した)。まじリスペクト。 質的な困難と、その攻略を通じて、アジャイル開発を理解するとスッキリする(個人的な見解です)。 はじめに アジャイル開発は、ソフトウェアエンジニアリングにおいて迅速かつ適応的にソフトウェア開発を行う軽量な開発手法群の総称である。 アジャイル開発の「なぜなのか(WHY)」や「どのような問題を解こうとしているのか」を、自分なりに整理したかった。その時、Brooks『人月の神話』を改めて読んで、びっくりした。これは、すごいと。 2018年10月9日に書いたメモがある。まだまだ整理や考える余地はあ

    銀の弾とアジャイルについてのメモ (Agile is a Silver Bullet) - ari's world
  • 低レイヤを知りたい人のための Cコンパイラ作成入門

    はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム このには一冊のに盛り込むにはやや欲張りな内容を詰め込みました。書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 このでは、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう

  • 9月末で60歳定年退職しました - 未来のいつか/hyoshiokの日記

    当社の規定により満60歳で定年退職をした。長いようで短かった会社員生活も一区切りだ。自分のプログラマとしての会社員生活を振り返ってみる。無駄に長いし結論はないのでお忙しい人は飛ばして欲しい。 9月末なのでブログ界隈では退職エントリーがそこかしこに書かれると思うが、その中で自分の退職エントリーを連ねることにどれほどの意味があろうか。もちろんないのだが、それでも多くの書き手の年齢を考えると満60歳定年退職というところに若干の希少価値を見出せなくもない。 1984年に大学院修了して以来、プログラマとしてのキャリアを重ねてきた。大学時代の同期でプログラマとして就職したものは皆無だ。当時、工学部の同期はメーカーに就職するのがほとんどで、大手家電メーカー、自動車メーカー、電力会社などなど、当時の誰でも名前を知っている人気企業に就職するものが大半だった。 その中で、日ディジタルイクイップメント(DEC

    9月末で60歳定年退職しました - 未来のいつか/hyoshiokの日記
  • DOS時代から使われてきたネットワークドライバーの改良がついに進む

    従来のNDISネットワークドライバーの動作環境。ネットワークアダプター(NIC。Network Interface Card)のドライバーはNDIS環境で動作してい DOSやOS/2時代から使われてきたNDIS NDIS(Network Driver Interface Specification)は、MS-DOSの時代からマイクロソフトのOSで利用するネットワークデバイスドライバーの仕様の名称だ。最初はMS-DOSのネットワークで利用するイーサーネットカードのデバイスドライバーの仕様として、マイクロソフトと3Com社が開発した。 NDISは、その後はWindowsで利用されたが、当時は、Windowsの下にMS-DOS環境があり、ドライバーの仕様を大きく変える必要がなかった。 ちなみに来ならNDIS 1.0となるべき最初の仕様は、単にNDISと呼ばれていた。また、ネットワークが普及しは

    DOS時代から使われてきたネットワークドライバーの改良がついに進む
  • システム開発のプロジェクトが炎上する理由 | 株式会社アクシア

    システム開発のプロジェクトの成功率は3割と言われており、業界内でのプロジェクト炎上の話題は度々耳にします。私自身もプロジェクト炎上の現場には何度か携わってきました。昨日ツイッター上でこんな投稿をしました。 システム開発のプロジェクト炎上する理由にはどんなものがあると思いますか?リプ欄でご意見いただければ幸いです。 — 米村歩@日一残業の少ないIT企業社長 (@yonemura2006) April 12, 2018 皆様から実にたくさんのリプライをいただきました。ご協力いただけた皆様ありがとうございました。 多くの皆さまがプロジェクト炎上経験者の強者のようでして、一言ではまとめきれないほどたくさんの炎上理由が集まりましたので、その内容をこのブログにまとめてみることにしました。 情報が多かったので私なりに少し整理しまして、下記の4つにカテゴリー分類してみることにしました。 会社間での力関

    システム開発のプロジェクトが炎上する理由 | 株式会社アクシア
    Wacky
    Wacky 2018/04/13
  • 「設計書」が書けない設計者

    私の兄は建築士です。建築士の場合、例えば「森と調和する美術館」や「3世帯同居の一戸建て」などを設計する際に、そのコンセプトや予算に応じた規模、メンテナンス箇所、強度計算を含んだ「設計書」を作成し、コンペ(建築設計の競技)に臨んでいます。どうして、機械設計には「設計書」の単語がないのでしょうか? この質問に対する私の回答はこうです。 【回答18】 恐らく、実務経験のない学者か誰かがそうした設計フローの学術書、もしくは教科書を作成したのだと思います。それを実務経験の浅い執筆者が転記し、長年の間に日企業から「設計書」が消えてしまったのでしょう。 日の製造業から消えた「設計書」 寿司職人や大工の世界では、親方が弟子に長い期間「修行」させ、基姿勢を日々指導しています。例えば、寿司職人といえば、「飯炊き3年握り8年」という言葉がある通り、修行は10年以上かかると言われています。しかし、技術者の場

    「設計書」が書けない設計者
  • FAXシステムをJavaでリプレイスしたら劇的性能UP - ぐるなびをちょっと良くするエンジニアブログ

    こんにちは。社内のJava利用率を少しでもあげたいと常日頃から考えている、Javaラーのカンノです。プラットフォーム開発グループに所属しています。 Javaと聞いて、ぐるなびの開発は「PHPメインでしょ?」と思われる方が多いようですが、実は社内でもJavaで開発されたシステムは多々あります。個人的にはJava推しで、実際にPHPのシステムをJavaでリプレイスしたら性能が劇的に良くなったので、今回紹介するのはその話です。 ぐるなびエンジニア内のJavaの扱い ぐるなびの開発エンジニアの中ですら「社内でJavaを使っているところがあるの??」と言われるほど、ぐるなびではPHPが主流となっています。たまにシステムのリプレイスや新規開発でGoRubyを使うと社内で話題に上がったりしますが、いざJavaで開発するとなっても、そこまで話題にすら上がりません……何故なのか……Javaラーとしては日陰

    FAXシステムをJavaでリプレイスしたら劇的性能UP - ぐるなびをちょっと良くするエンジニアブログ
  • 増え続ける工数を変わらぬ人数で捌いていくフロムソフトウェアの方法論

    2018年3月30日,大阪府・グランキューブ大阪で「Game Creators Conference '18」(GCC'18)が開催された。 GCC'18は関西発のゲーム業界向けゲーム開発カンファレンスだ。関西地区のゲーム企業有志による「勉強会」を母体としたイベントだったが,いまや4トラック24セッションという規模という一大イベントに成長している。地元である関西企業によるセッションのほかに,東京などからこのイベントのために多くの企業が参加している。 ここではそんなうちの一つであるフロムソフトウェアによる講演の模様を紹介してみたい。「複数タイトルの開発を維持しつつ大規模化に適応した中小企業エンジニアの取り組み」というタイトルの講演だが,「複数タイトルの開発を維持」「大規模化」といったあたりはちょっと見ただけでは意味が分からないかもしれない。 さて,フロムソフトウェアといえば,初代PlaySt

    増え続ける工数を変わらぬ人数で捌いていくフロムソフトウェアの方法論
    Wacky
    Wacky 2018/04/07
    “新しいツールを使うようにするという意識が強すぎて誤解を招いていた部分もあるという。そのツールの範囲内だけで仕事をして,新しいことはやっちゃいけないと思われがちだったり,社内全体で使うツールなので,新
  • デスマーチは続くよどこまでも。発注サイドからみた開発プロジェクトのこぼれ話。 - 親子ボードゲームで楽しく学ぶ。

    私は仕事でシステム開発プロジェクトに発注者側として関わることがあります。 ソフトウェア開発と建設工事はよく似ているといわれますが、両方みてきた経験からしても確かに似ているかも。 長期にわたるプロジェクト体制が組まれ、そこには多くの関係者が関わります。 受注するのは大手企業でも、1次請、2次請は当たり前。最末端では「何を作っているかも分からない」ことも多いプログラマたち。かなり過酷な労働環境で働いています。最近では日語がわからない外国人がオフショアでコーディングしていることも多いですね。 ただ建設業とソフト開発で決定的に違うのは、進捗が目で見えないところ。建設工事なら「もう3Fまで出来上がったな」と、素人目でもわかりますが、ソフトウェアはそうはいきません。 そのため、ソフトウェア開発の進捗管理は、コンサルティングファームなどからくるマネジメントのプロでも至難を極めます。 開発プロジェクト

    デスマーチは続くよどこまでも。発注サイドからみた開発プロジェクトのこぼれ話。 - 親子ボードゲームで楽しく学ぶ。
    Wacky
    Wacky 2018/01/25
    “進捗は計画通りか、ちょっと遅延くらいで報告するのがいいというインセンティブが生まれます。”
  • ファミコンのゲームを作れるソフト「NESmaker」開発中。プログラム知識なしで気軽に作れる、カートリッジ化も可能 - AUTOMATON

    アメリカ・フロリダ州を拠点とするThe New 8-bit Heroesが1月20日より、Kickstarterにてプログラミングを必要としないNESソフトメイキングツール「NESmaker」の開発資金を募るキャンペーンを実施中だ。 「NESmaker」はその名のとおり「NES」(Nintendo Entertainment System、ファミリーコンピューターをベースとした筐体)専用ソフトの総合開発環境を搭載したソフトウェアである。同じゲーム開発ソフトである『GameMaker』や『Unity』を意識して制作されているようだ。ユーザーは複数あるゲームジャンルを 元に自由にゲームを開発することが可能で、メニューの作成からAIのカスタマイズ、パラメータの設定まで一切のコードを書きこむことなく初期機能のみで開発することができる。 ゲームを彩るためのパレットも、もちろんNESの動作環境に準拠し

    ファミコンのゲームを作れるソフト「NESmaker」開発中。プログラム知識なしで気軽に作れる、カートリッジ化も可能 - AUTOMATON
  • メモリダンプから.NETのメモリ状態を探りたい - Grani Engineering Blog

    こんにちは、@mayukiです。 以前、このブログにてダンプ解析入門 - Visual Studioでの可視化によるC#トラブルシューティングというスタックオーバーフローのような問題を調査する方法について触れましたが、今回はダンプを元にメモリ周りの状態を見ていく方法について調べたので少しまとめてみました。 長い時間実行するようなアプリケーション(アプリケーションサーバーなど)ではメモリの使用状況やメモリリークなどを調査したいというケースがたまにやってきます。そんなときにはプロセスのメモリダンプを取得して解析することで問題の原因がわかりそう…そんなシチュエーションで役立つかもしれません。 お品書き お品書き 前提 メモ: 64bit コンピューターで動作している32bit プロセスのダンプをとる ダンプのみどころ どのツールで解析すれば? Visual Studioを試してみる DebugD

    メモリダンプから.NETのメモリ状態を探りたい - Grani Engineering Blog
  • 『テスト駆動開発』を読んで - まめめも

    テスト駆動開発posted with amazlet at 17.10.12Kent Beck オーム社 売り上げランキング: 563 Amazon.co.jpで詳細を見る オーム社さまから電子書籍を贈いただきました。ありがとうございます。 書はテスト駆動開発(TDD)の原典で、たいへん有名なです。が、自分はわず嫌いで読んだことがありませんでした。 というか、TDD 自体もちゃんと理解したことがありませんでした。なんだろう、なんか怖かった。 そんな自分が今回このをいまさら読んでみたら、なるほどこれは確かにいいでした。なんというか、語りたくなる感じ。ということでご紹介。 紹介 テストとプログラムを交互に書いていく開発方法 TDD を、例題を用いて実演していくです。 TDD というと「プログラムより先にテストを書く」というところだけ強調されますが、正直それではよくわからないのでし

    『テスト駆動開発』を読んで - まめめも
    Wacky
    Wacky 2017/10/14
    “TDD の真のポイントは TODO 管理だと思う”
  • Pythonを書き始める前に見るべきTips - Qiita

    Pythonを使ってこの方さまざまな点につまずいたが、ここではそんなトラップを回避して快適なPython Lifeを送っていただくべく、書き始める前に知っておけばよかったというTipsをまとめておく。 Python2系と3系について Pythonには2系と3系があり、3系では後方互換性に影響のある変更が入れられている。つまり、Python3のコードはPython2では動かないことがある(逆もしかり)。 Python3ではPython2における様々な点が改善されており、今から使うなら最新版のPython3で行うのが基だ(下記でも、Python3で改善されるものは明記するようにした)。何より、Python2は2020年1月1日をもってサポートが終了した。よって今からPython2を使う理由はない。未だにPython2を使う者は、小学生にもディスられる。 しかし、世の中にはまだPython3に

    Pythonを書き始める前に見るべきTips - Qiita