タグ

ブックマーク / blog.lai.so (7)

  • 無法地帯にテストケースを追加する時にいつもやっている戦略 - laiso

    数年開発続いてるけどテスト全くないみたいなよくあるコードベースを想定。 不具合を修正する時についでにリファクタリングしてドメイン層のテストを書く。 手動テストで不具合を再現 ViewからロジックをControllerへ移動し、Viewからは値の参照のみにする 移動したロジックをController内でプライベートメソッドに切り出す。返り値を(2)の値にセットする プライベートメソッドを外に出して関数→モジュール化する (4)のメソッドに対してテストを書き、失敗するのを確認する ポイントとしては 運用的観点ではなるべく早く不具合を修正してデプロイしたいので、リファクタリングだけ別のブランチでゆっくりやる 依存がでか過ぎで解決できなさそうなど問題があれば、その時点ではテストを書くのを諦める。行動したことで学んだIssueを起票する 具体的なリファクタリング方法は レガシーコード改善ガイド (O

    無法地帯にテストケースを追加する時にいつもやっている戦略 - laiso
    komlow
    komlow 2018/03/08
  • iOSエンジニアといいかんじなテストの話 - laiso

    Consumer Service Engineer MeetUp Vol.1 ~iOS編~ - dots. に行った。 最近あんまりザ・iOSアプリ開発らしいことしていなかったので情熱的な各社の話を聞けておもしろかったし、意識の高まりを取り戻せてよかった。 時間なかったので感想書く余裕ないかと思っていたんだけど、http://ainame.hateblo.jp/entry/2014/04/25/014605 の感想なんかを読んでたら触発された。 人力テスト 自動テスト vs 人力テストの構図というよりは、デベロッパーテスト、品質管理とユーザーテストやユーザビリティテストの違いで理解していた。 テストの目的と観点、誰が何をテストするのかという部分に注目するとスッキリすると思う。 講演した各企業の担当の人はユーザビリティテストに積極的だが、デベロッパーテストはうまくいってないという話を確かにし

    iOSエンジニアといいかんじなテストの話 - laiso
  • スレッド・並行プログラミング/ マルチコア・並列プログラミングを学びはじめるためのN冊 - laiso

    読みたいのリストを作ってる(いくつかは購入済み)。 なんかおすすめあったら教えてください。 でもこういうのってリスト作って仕事した気になって満足してしまう。 並列と並行 学びはじめる前なんだから当然よくわかってはいないんでけど、並列と並行処理の違いは以下で認識してる parallel と concurrent、並列と並行の違い - 当は怖い情報科学 parallel と concurrent 、並列と並行の覚え方 - まめめも (追記) 孫引きなんだけど「コーディングを支える技術 171P」に「プログラミング言語の概念と構造」から引用した記述があった ここでは並行→プログラミング上の概念、並列→ハードウェアレイヤーの話となっていますね。 並列処理・並行処理がプログラミングに必要な理由 マルチコアを生かしたパフォーマンスの向上 大規模なデータの処理 GUIアプリケーションのユーザビリティ

    スレッド・並行プログラミング/ マルチコア・並列プログラミングを学びはじめるためのN冊 - laiso
  • 今夜決定。人気Objective-Cモジュール・ベスト2450 - laiso

    追記(03/2014) COCOAPODS SEARCH 理想的なサービスが非公式にできていた。最高なので是非使いましょう。 以下は初稿 タイトルの件は忘れてください。 概要 CocoaPodsメインSpecリポジトリの全登録モジュールを対象にGitHubでのwatcher/star数などを参考にした一覧を作成しました+Objective-C Toolbox が欲しい話。 なにかというとローカルのCocoapodsのpodspecディレクトリの各:sourceからGitHub上のリポジトリを特定してAPIで取得しただけです。なのでGitHubにないリポジトリは換算されてない。 作業に使ったスクリプトがこのへんにあります https://github.com/laiso/objc-toolbox/tree/master/script なんでそんなものが必要だったのかというと、前からmetac

    今夜決定。人気Objective-Cモジュール・ベスト2450 - laiso
  • Objective-Cを絶対書きたくない人向けのiOSアプリ開発ソリューションの総括 - laiso

    有償、無償のやつがいろいろあって最近試してみたのでメモ書きを残しておいた*1。 最初にことわると、既に何かしらの言語を身に付けているプログラマー向けの記事になる。プログラミング自体の入門者は学習環境が整っているので絶対Objective-Cから入った方がいいです(個人的にはP*言語系でウェブ開発フルセット身に付けるよりか楽だと思う)。 Objective-Cを避けたい動機 未知のプログラミング言語を習得するコストがツラい Objective-Cは潰しが効かない(iOS & Macアプリ開発でしか使わないじゃん) Android版など。なるべく移植性を高くしたい Xcodeを使ってコーディングするのがいやだ。愛用しているエデイタで開発したい 開発環境が強制される。不自由で邪悪なので使ってはいけない。 とまあ人によっていろいろある 比較表 記事でとりあげたものの簡単な比較表をテーブルにしてお

    Objective-Cを絶対書きたくない人向けのiOSアプリ開発ソリューションの総括 - laiso
  • プログラマが体験するべき○つのこと - laiso

    プログラミングはそれ自体が目的であっていい - mizchi log 大事なのは、いくつ地雷を踏んだか、だ。地雷を踏んだ数だけ強く慣れる。真に必要なのは、独力での問題解決能力。Python2系でsjisのHTMLをlxmlでスクレーピングすると、地雷を7つぐらい同時に踏めるからおすすめだ。 僕もまあそれなりに手を出しているのだけど、他の人も抑えるべきだと思った概念は、次のものだ。 Haskellにおける入出力IOと副作用の概念 HaskellのMaybe, またはScalaのOption型 Scalaのtrait Node.jsの非同期Promiseパターン C#のgetter/setter/readonly/async等の型アノテーション 題にはあんまり興味がなかったんだけどこの部分がおもしろかったのでイッチョカミしたい。 成功体験の共有とまではいかないけど、こういう「これはやってよか

    プログラマが体験するべき○つのこと - laiso
  • 最近のウェブ系スタートアップが採用しているプログラミング言語やフレームワークまとめ - laiso

    http://www.quora.com/Node-js-Ruby-Python-who-wins-in-5-years を読んでて「勝利条件としてより多くの”スタートアップ”に選択されること」という話がでてたけど、そもそも今は何が採用されているのか状況がよくわかたっていなかったので調べた。 スタートアップ? 一般(自分の周辺)に「ウェブサービス」みたいな呼称されているもの。消費者向けというかなんというか、企業向けシステムとか、ソーシャルゲーム単品とかは含めないことにした なんでスタートアップ?(小規模な企業) 企業が大きくなってくると、いろんな領域で必要なことがあってこの企業は→このプログラミング言語みたいなひもづけができなくなるので 項目は =企業ではなく=サービスでわけた 順番、国内外は適当。できるだけ知名度のありそうなサイトを選んだ いわゆるサーバーサイドのアーキテクチャの話(それ

    最近のウェブ系スタートアップが採用しているプログラミング言語やフレームワークまとめ - laiso
  • 1