本記事では、 チームによる持続的に変更可能なWebアプリケーションの開発を目標に、フレームワーク導入時に考慮すべき22の観点を紹介する。 フレームワークによって特徴は異なるが、本番導入にあたって、考慮すべきポイントはあまり変わらないので、極力フレームワーク1に依存しすぎないよう配慮する。また、話をシンプルにするため、REST APIを提供するアプリケーションを題材とする。 前提 ソフトウェアのエントロピー ソフトウェアがエントロピー増大の法則を避けられないことを、体感している開発者は多いだろう2。普通にアプリケーション開発を続けると、開発スピードは鈍化し、品質は低下してバグが増え、開発者からは技術的負債への怨嗟の声が聞かれるようになる。エントロピー増大というフォースは極めて強力で、意思を持って立ち向かわなければ、容易にダークサイドに堕ちてしまう。 関心事の分離 大規模Webアプリケーション
Click here for English version *追記:Student Goで発表しました。 speakerdeck.com クリーンアーキテクチャとは 以下を実現することで、関心の分離をするアーキテクチャパターンです。 ドメインロジックを独立させる フレームワークを独立させる UIを独立させる DB含む外部の全てを独立させる ドメインロジックをテストしやすくする 詳しくは様々な記事で説明されているので、今エントリでは割愛し実装パターンに絞って紹介します。 Clean Coder Blog 持続可能な開発を目指す ~ ドメイン・ユースケース駆動(クリーンアーキテクチャ) + 単方向に制限した処理 + FRP - Qiita サンプルアプリケーション ↓サンプルコード github.com 仕様は、/users にPOSTすることでユーザー登録するだけのapiです。 基本はma
こんにちは、鈴木です。 20 万行を超えるアプリケーションのほとんど全てのソースコードを変更し、テストを行わずに本番リリースしました。 「それってテストいるんですか?」問題 いきなりですが質問です。ソースコードを 1 バイトでも変更したら再テストする必要はあるでしょうか。「絶対に再テストすべき」という方もいれば、「状況によるしケースバイケースかな・・」という方もいらっしゃると思います。 ケースバイケースと考える方は、どのような場合にテストを行わなくて良いと考えるでしょうか。例えば、コメント内の誤字を修正した場合はどうでしょうか。ローカル変数の名前を typo していたので修正した場合、デッドコードを削除した場合はどうでしょうか。 こんなことがありました ある日、Python のソースコードを眺めていると、「# $Id」のような CVS 時代のコメントがありました。いまやソースコードは Gi
Quoraでの質問に対する回答の翻訳。長らくコンピューターの世界に身を置いている人間からの、ウィットに富んだ回答。 ソフトウェア開発におけるあらゆることは、既に発明されてしまっています。人々は、それを再発見し、あたかも初めて見つけたかのようなフリをしているだけです。あなたがかっこよくて新しいと思ったものはすべて、Smalltalk、HAKMEM(訳注 : MIT AI研究所で書かれた、アルゴリズムや理論などが書かれたメモ。Wikipedia英語版)、Ivan Sutherland(訳注 : Wikipedia日本語版)、Douglas Engelbart(訳注 : Wikipedia日本語版)、初期のIBM、あるいはBell Labsからのコピーでしかありません。 コンパイラーを信じてはいけません。ツールを信じてはいけません。ドキュメントを信じてはいけません。自分のことも信じてはいけません
ブロックチェーンの社会実装の勢いが止まらない。テック市場に特化したイギリスの調査会社Juniper Researchが、今年の夏に発行した調査レポートの結果によると、 大企業の65%がブロックチェーンの導入を検討しているか、導入している最中 大企業の50%程度がイーサリアム上で分散型アプリケーションを立ち上げを予定 大企業の25%程度はProof of Conceptを終え、商品化を終えたか、その段階に差し掛かっている (大企業=1万人以上) とのことだ。 え!導入比率、意外に高くない?国内でも例えば、つい昨日は日本経済新聞の朝刊にLINEがトークンエコノミー構想の詳細を明らかにしたことが話題になったりして、たまに見かけるけど、まさかここまで来ていたとは驚きだ。ここまで来てしまうと、そろそろ私のような一介のサラリーマンであっても、ブロックチェーンを理解しておかないといけない雰囲気が漂ってき
僕は組み込み系エンジニア*1として通算10年ほど働いていますが、 今日ほどこの業界の人手不足を感じたことはありません。 とにかく人がいない・・・より正確に言うなら、「即戦力になる経験者が少ない」のです。 2018年2月時点での求人倍率は4.77倍です。 今、カネで奪い合いになる「人気職種」 (溝上 憲文) | プレジデントオンライン 転職求人倍率職種のトップは「インターネット専門職」(Webエンジニア含む)の5.66倍、続いて「組込・制御ソフトウエア開発エンジニア」の4.77倍、建設エンジニアの4.22倍だ。 システムエンジニア全体の中でも年収は低いほうではないし(参考記事:組み込みエンジニアの年収ってどれくらい? | アトオシ)、特別待遇が悪い職種というわけでもないのですが、何故ここまで人がいないのでしょうか? 組み込み系エンジニアとは ソフトウェア/ハードウェア両方の知識が必要とされる
2018年9月6日、ビジネスエアポート六本木にて「米国アップル社、マイクロソフト社、そして国連本部も認めた83歳のアプリ開発者 若宮正子氏登壇!『MY SMART WORK LIFE』セミナー②。世界を魅了する理由に迫る!!」が開催されました。本パートでは、若宮正子氏の生い立ちからアプリ開発に至るまでのエピソードについての講演模様をお送りします。 突然世界中で有名人になってしまった、若宮正子氏の講演 若宮正子氏:みなさん、こんばんは。若宮正子です。どうぞよろしくお願いいたします。だいたいの人はみんな「マーちゃん」って言っているみたいなんですけども、戸籍上の名前は若宮正子です。 今日お話しすることは、まず自己紹介。それから、今日のテーマであります「私は創造的でありたい」というお話。それから最後に、最近の活動から得られたものです。といいますのも、私は1年半ぐらい前に、急に「にわか有名人」になっ
HTML/JavaScript/CSS/CGIなど Webサイト作成に関する情報を満載した Web作成関連総合サイトです。
import java.util.*; class ArrayListTest { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("AAA"); list.add("BBB"); list.add("CCC"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } } } 下記などのメソッドが用意されています。 list.add(o) - オブジェクト o を配列の末尾に追加する list.add(n, o) - オブジェクトを n で指定した場所に追加する list.get(n) - n番目の要素を得る list.remove(n) - n番目の要素を削除する list.
伊藤ソフトデザインは1月9日、iPhone/iPod touchをPLC(Programmable logic controller)向けの簡易タッチパネルディスプレイとして利用可能にするアプリ「irPanel」をリリースした。App Storeからダウンロードでき、価格は4900円。キーエンスと三菱電機の主要な機種に対応する。 irPanelは、iPhone/iPod touchにインストールすることで、PLCの操作や管理を可能にするiPhone向けアプリ。irPanelとPLCとの間は無線LANで接続でき、機械から離れた場所でのメンテナンスや操作を単独で行えるようになる。iPhone/iPod touch1台で複数台の機械を兼用でき、irPanelのみで編集から操作までに対応することから導入や環境整備がしやすいという。 irPanelとPLCの接続は無線LANで行え、Ethernet対
工場のIoTと昨今言われているのですが、PLCでできた既存の生産設備をパソコンからネットワーク経由でリアルタイムに見えるところまで持っていこうという段階のお話です。お仕事で通信することになったのでそのメモとして。 構成 実際に使った機器は三菱電機のFX5Uという中小規模設備を対象としたPLCでLANの口が標準装備されているタイプです。 このタイプのPLCはIPアドレスが設定できて、Socketを使って通信できるので、プログラミング言語を選ばないで上位PCからPLCのデバイスの値を簡単に読んだり書込んだりできます。今回はJavaを使ってサンプル書きます。 余談ですが、僕がお話をする生産技術現場の方(メカ屋さん)はパソコンのことを上位PCとおっしゃいます。上に立ったつもりはないのですが現場で話が通るので以下プログラミング側のことを上位PCと呼びます。 プログラミング言語 : Java PLC:
言われたものはだいたい作れるし、どんなプログラミング言語が来ても大抵書けそうかなってなったエンジニアがそこで成長が止まってしまう人を見かけることがあります。 技術が好きで、作ることが好きで、なのに環境に求められず成長が止まってしまっているんだろうと思います。 ここで成長が止まってしまう環境とは、 新しい技術の情報を仕入れて語り合うエンジニアが居ない 業務用件に高い技術が求められない 改善サイクルが遅い 開発プロセスなどをまとめる人がいない などです。 簡単に言うと、今はうまく仕事があるけれど、停滞している仕事場ですね。 下手にビジネス的に成り立ってしまっているので、それ以上成長をする必要がないのです。 まあ、そういう生き方もありかな?って思うので、それでいいやって思う人は続きは読まなくてもいいかなって思います。 ここから先はエンジニアとして技術を伸ばすことが楽しい、ものを作ることが楽しい、
本日、30歳の誕生日を迎えました 🎉 やはり、ひとつの区切り感はありますね。 せっかくなので、僕のこれまでのプログラマー人生について話します。 完全にチラ裏の自分語りです。 ドラマチックな展開もなければ、知見も教訓もありません。 ただ、昔のこと、プログラミングを始めた頃のことを思い出して整理してみたら、自分が初心に返るための便利アイテムになるじゃないかなと思い、 記憶があるうちに書いておきます。 簡単にまとめると コンピュータとその面白さを知った Javaは最高のおもちゃだった 勉強会やコミュニティに参加するようになった マイナーなプログラミング言語と出会った 毎日楽しくお仕事してる これまでの人生を振り返って、一言で表すと「運がよかった」ですね。 夢中になれるもの、仕事としてやっていきたいものが見つかったのは、とてもありがたいことですが、運とか偶然と言うほかありません。 そして、これも
このサイトは“自分らしさで探す、働く|転職・求人サイト はたらいく”です。 当サイトでは個人情報保護と利便性の観点からクッキーを使用しています。 (個人情報収集等の目的では使用しておりません。) 当サイトをご覧になる場合は、クッキーを使用できるように、ブラウザの設定を変更していただく必要があります。 このページをブックマークしている場合は、次に表示されるページで、再度ブックマークしてください。 ブラウザの設定変更の方法 トップページへ
Haskellらしさって?「型」と「関数」の基本を解説!【第二言語としてのHaskell】 第二言語としてHaskellを学ぶ道案内。開発環境の準備から、Haskellらしいプログラミングの考え方まで、Haskell-jpのigrepさんが丁寧に解説します。 こんにちは。Haskell-jpの山本悠滋です。 この記事では、すでにプログラミング経験のある方向けに、第二言語としてHaskellを学ぶ道案内をしていきます。 環境の準備や、自明なサンプルプログラムの紹介にとどまらず、Haskellらしいプログラミングの考え方も伝えていく予定です。 Haskellについて Haskellというと、「関数型」というキーワードが思い浮かぶ方も多いと思います。 確かにHaskellは、すべての関数がカリー化されており、それらを組み合わせてプログラムを書いていく関数プログラミングがしやすい言語です。 しかし
Haskell は関数型プログラミング言語の”標準語”として、1990 年に 誕生 (Haskell 1.0) した比較的新しい言語です。 その後、1999 年に安定した言語定義 Haskell 98 が制定され、 徐々に知名度が高くなっています。 しかし、まとまった日本語の解説がほとんど無いので、 簡単な解説記事を書いてみました。 目次 Haskell とは プログラムを動かす 関数を定義する 型 入出力 Haskell で最小二乗法 自前の data と class Monad 探索 種々のデータ構造 Module 詰碁を解く
なぜこれを書くのか 私がQiitaに投稿した記事を見た方から、メールが届きました。 プログラミング言語のHaskellを勉強し始めたものの、難しくてやめようかと考えているそうです。 その気持ちも非常によく分かります。 すごいH本が出版されてから年月も経ち、それなりに勉強しやすくなったとはいえ、お世辞にもHaskellを学ぶ環境が整っているとは言えません。 私はHaskellで製品開発をする会社を保守運用していたことがあり、また自分自身もHaskellでプログラムを書いています。 また、Haskellを普及させるべく、「こわくないHaskell入門」という記事を書いたこともあります。 これらの経験を踏まえ、この機会にあらためて「なぜHaskellを学ぶと良いか」についてまとめたいと思い立ちました。 Haskellについてまだよく知らない方が、入り口として読める内容を目的としているので、できる
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く