「ミドルウェア」を含む日記 RSS

はてなキーワード: ミドルウェアとは

2018-06-24

開発環境と本番環境を一つにすれば効率的そもそもお金貰えるの?

そもそも弊社って開発環境の代金を見積もりに入れてなくて、

なんか対応が入る度に本番環境からソース落としてきてCentOSiso使ってVirtualBox仮想環境作って

yumで手順書見ながら必要ミドルウェアとか導入して、

本番環境と同じ設定でメールとか飛んだらまずいからその部分を探して修正して、

反映の際はそこだけ戻してってやってるんだけど、

これはもしかして物凄く頭が悪いのか?

anond:20180624002156

アプリ側はそれでいいけど

サーバー側が後から何かミドルウェア導入して使いたくなったりとか

データベースバージョンアップとかするときにぶっつけ本番になるのはこわくね

2018-05-12

元号が変わることへの対応なんてミドルウェア任せにできないものかね

昭和から平成プログラムの書き換えが面倒で一気に和暦が減ったが、今時はそれくらいの自動化はできていて欲しいところ。

glibc.NET FrameworkJavaOracleあたりのメジャーどころは標準で和暦機能提供しているわけだし。

2018-04-01

anond:20180401183450

もう痛いほど分かる。

フレームワークって生産性上げるためのおまけに過ぎないのに、知ってないと話にならない基盤になってるんだよね。

それなのに色々ある上にミドルウェアとの組み合わせとかもあるしもう正直ついてけねー。フレームワークについて考えたくねー。

2018-03-11

自分自己肯定感が弱いと感じている

日頃、自分の興味のあることに関する課題発見し、それを解決するためにアプリ(小規模だけど)を開発し公開している。作ったものがたまにバズることがあって、その結果1日の広告収入が1万円を超えたこともあった。しかし、定期的に作ったアプリに対して使った技術要素やコーディング量を見返した時、これぐらいのものはxxさんなら自分より短時間かつ高クオリティで開発できるなと思うことがあるのだ。

興味があることに自分課題発見し実際に手を動かしているのですごい!みたいな話を聞いたことがあるが、理解はできても共感ができない。

常にネガティブ感情を抱いているわけでもなく、難しい箇所をうまくコーディングできた時は自分のことを天才だと感じることや、ミドルウェアを含むバックエンドからフロントエンドまで1人で開発できるようになり、昔の自分と比べて成長したと感じることはある。ただ、これらのポジティブ感情は一瞬で終わり、あっという間に上に書いたようなネガティブ感情自分支配するようになる。

レッドコーダーやKaggle Masterになるか未踏に採択されるなどのレベルに達すれば、自分を認めることが出来るような気はしているが、あいくそこまでの能力は持ち合わせていない。

https://anond.hatelabo.jp/20180311003723 を見て書きたくなった

2018-03-10

anond:20180310153423

プログラミングをやればやるほど、上には上がいることを実感する。

普通プログラマーは、誰かが作ってくれたツールCPUプログラミング言語、ミドルウェア)を使っているに過ぎない。

本当にできる奴は、自分ハードも開発できるし、プログラミング言語も作れる。それだけの勉強をしっかりやっているからこそ、基礎力がある。スティーブ・ウォズニアックとかスゴイよね?

ちょっとコードを書けるぐらいで、自分スーパーハッカーなどと自惚れない方が良い。それでは、成長が止まってしまう。

もっと上を見よう。

anond:20180310144402

実行環境の構築は、インストーラーでワンタッチポン!でできないとダメ

環境の構築が面倒くさいプログラミング言語ミドルウェアって普及しないよね?

2017-12-31

きれいなコードを書くのはやめた

きれいなコードを書け。コミットは細かく、メッセージをちゃんと書け。

そうずっと教えられてきたし努力してきた。

でも、もうきれいなコードを書くのはやめることにした。


業界2位のミドルウェアが、、1990年代タイムスリップたかのような継承拒否した継承構造で書かれていた。

世界的なOSSで3桁や4桁のスターがついているリポジトリコードは、コピペの嵐。巨大なマージコミットやFワード入りのコミットメッセージ

有名なスタートアップCTOコードは、メタプログラミング黒魔術の塊だった。

リードプログラマの同僚が、素早い機能追加で顧客から高く評価されている。

でも、それはコピペまみれで、巨大のコミットの汚いコードからできる。

自分バグのないきれいなコードを書くように心がけている。

同僚にくらべて、実装は遅い。そのことを叱責ばかりされる。


優秀なプログラマは、自分は quick and dirty なコードをかくくせに、 他人にはきれいなコード要求する。

ダブルスタンダードだ。

他人きれいなコード要求するのは、他人コードを読む時間を短くするためなのだろう。


優秀なプログラマになるために、私もきれいなコードをかくのはやめにすることにした。

2017-12-21

バグばっかりだったあのゲームの思い出

きららファンタジアというスマホゲーで何か大きな問題が起こって大騒ぎになっているというのは Twitter自分タイムラインにちらほらと出てきていたので「そうなんだー」程度の認識だったのだけれど、その炎上のまとめと考察(https://smhn.info/201712-kirara-fantasia-cheat)を読む機会があってなるほどこれは大変な問題ですね、と思った。

それで僕は、サービスインからサービス終了までをほぼ全て見守ってきたあのゲームの事を久しぶりに思い出したので懐かしい思い出としてここに書き記しておこうと思う。

そのゲーム、仮にスキマとしよう。そのスキマはスマホゲーによくある隙間の時間を埋められるようなデザインをされたゲームで、大まかにいうと冒険者を組織してダンジョンへと冒険に出かけさせ、持ち帰った財宝を使って冒険者を強化して、また冒険に出かけさせるというサイクルのゲームなのだが、冒険中はユーザ特にすることがなくただ待っているだけという、冒険者を送り出して帰ってきたのを確認するだけの作業をその隙間の時間にやってね、というゲームだった。なお、スキマは単発のゲームというよりは、はるか昔のパソコンで動いていたゲームを始祖とする名のあるタイトル(仮にウィリーとしよう)を冠したゲームで、ルネサンスと名付けられたウィリーブランド再生プロジェクトのうちの一つであった。僕はそのウィリーが好きだったのでとりあえず遊んでみようとダウンロードしたのであった。

サービスイン直後に一ヶ月メンテ

まず、スキマのサービスイン直後だが、オンラインゲーの例に漏れサービスイン直後に色々な問題を起こしてメンテにつぐメンテでまともに遊べる状態ではなかった。だいたい4,5日はメンテをしたり、たまにサービスしていたり、という感じだったのではないかと思う。そのサービスインから4,5日経ったあたりで、「このままでは安定したサービスが続けられないので長期メンテナンスに入る」といった感じのアナウンスと共に、メンテナンスに入った。このメンテナンスは一ヶ月とちょっとの間続いた。僕はサービスイン初日にはプレイできず長期メンテナンスに入る前に少し遊んだ程度だったのだが、遊んでみた所では「これは酷い」としか言いようがなかった。

まず動作もっさりとしている。何かのボタンを押すたびに CONNECTING… というダイアログが出て2秒位は待たされる。場合によってはボタンを3,4回押さないと目的の事ができないのに押すたびに CONNECTING… なのである。次にタップに反応しない。ボタンを押すと書いたが押したつもりが押されていない事がしばしばある。この場合は CONNECTING… が出ないのでわかるのかと思いきや、1秒位経ってから CONNECTING… と出てあぁ、押していたのか、とわかったりするようなもっさり具合である(もちろん押していなかった時もあるので1秒後までは押せたか押せなかったを判別できなかったりする)。

また、バグと言っていいであろう謎の動作が多い。ダンジョンに送り出したパーティダンジョン内部での行動がダンジョンログとして閲覧できるようになっており、そのダンジョンログは直前の3回までのログが観られるようになっているのだが、そのダンジョンログの表示される内容が複数が同じものになっていて実質的には3回のログはみられないであるとか、CONNECTING… が出るタイミングで他の部分をタップしてしまうと高確率アプリが落ちるであるとか、特定の順番で装備している武器を変更すると攻撃力が最低値に固定されるであるとか、リリース記念かなにかで貰えるキャラがなぜか毎日もらえて同じキャラが増えていくであるとか、まぁ色々な問題があって面食らったものである

そんな感じでサービスインを迎えたスキマなのであるが、こんなに酷い状態なのではユーザはどんな事を言っているのだろうとコミュニティを探した所、2chスレッドが立っていた。案の定スキマのバグ報告スレと化しており、「あぁ、このゲームは本当に全然駄目なんだな」とほっとしたのを覚えている。僕はその頃からその2chスレッドを眺めるようになった。また、こんな状態ではサービスが続けられないのはわかるけれど、一ヶ月程度のメンテナンスでなんとかなるものでもないだろうとも思ったので、せっかくなのでサービス終了まで看取ると面白いのではないかとも考えた。

サービス再開後も問題改善せず

一ヶ月と少し経った頃、スキマのサービスが再開された。まぁ残念ながら僕の予想は外れておらず、お世辞にもちゃんと遊べるとは言えない状態であった。とはいえ、本来は一回しか貰えないはずのキャラ複数回貰えるであるかいった所に代表されるゲームとして守られるべきルールのようなものについてのバグの多くは直っており、残っている問題の多くはクライアントアプリ側の問題サーバ側の負荷対策ができていない問題とみられ、クライアントアプリ側の問題特定操作をしなければ落ちはしないしサーバ側の問題もっさりだけれど待てば処理はしてくれるので一応遊べないことはない状態だとは言えた。それでも、クライアントアプリ側でのUI不思議動作(押してるつもりでも押せていない、連打するとクラッシュ)に誘発されたと考えられる進行不能バグ代表とする理不尽問題は沢山残っており、ユーザとしては不満が渦巻いていた。

そんなスキマではあるのだが、サービス再開の後はウィリーでは有名な人の名前を冠したイベントを行ったり、定期的に期間限定ダンジョンオープンしたりといった運営を行っていた。もちろんバグはじんわりと直ってはいくのだが、特に劇的な直り方はせず、「俺サービス開始直後からログインできなくなっててまだログインできないんだけど」みたいな事を報告するユーザ(?)も2chでは散見されるという状態で、2chスレッドは「スキマのバグを踏まないようにプレイするにはどうすれば良いのか」という情報を交換するための機能果たしていた。

開発会社の変更

一ヶ月メンテからサービス再開から3,4ヶ月経った頃、運営会社から開発会社の変更が発表された。曰く、外部の開発会社制作を依頼して制作したのだが、不都合が多すぎてどうしようもないので開発を自社に引き取るということであった。その後一ヶ月程して「不都合収束クライアント」と銘打ったクライアントが配布される。この不都合収束クライアントで確かにいくつかのバグ修正されはしたのだが、もっさりとした動作が変わるわけではなく(プロトコルサーバ側も修正されていないようであったので当然ではある)、操作によってはクライアント強制終了していたのが強制終了はしなくなった、程度の修正であり、これを解決するには根本的な改革必要であるとみてとれた。

サービス開始1周年

そんなスキマではあったが、何故かサービスは終了せず、サービス1周年の時を迎えた。この時、スキマの開発体制についての発表もあった。現在のスキマのクライアントプログラムは改修を重ねていくが、それと平行して開発ミドルウェアを変更してフルスクラッチクライアントを作り直している、という発表であった。2chスレッドではフルスクラッチクライアントを書き直すということで、バグの根治は当然として、目的の事を行うのに3〜4タップ必要であったりするというUI周りまで手がつけられるのではないか、という事を期待する声が上がったりもした。

また、この1周年挨拶の3ヶ月後には新クライアントの開発状況は70%と発表された。

この頃からであろうか、僕が遊んでいる環境のみなのか、又は他の人ではあまり現れない問題であったのか、とにかく僕が遊んでいる環境では冒険からの帰還を行おうとすると変に時間がかかるようになった。この問題は何らかの原因で帰還操作完了するまでの時間が少しづつ伸びていくという問題であった。この問題は後で僕には大きな問題として認識されるようになる。

この頃からは新クライアントを開発しているためなのか、旧クライアント修正はあまり行われなくなり、定期的なイベントが行われるのみであった。思えばこの頃はスキマの遊び方(このようにするとバグを踏むのでこれはしない、であるかいった遊ぶための作法)がわかっている人間しかスキマを遊んでおらず、運営側積極的には宣伝もしていないため新しいユーザも増えなかったため、比較的安定した運営が行われていたのではないかと思われる。

また、恐らくこの頃であると思われるが、2chスレッドで「スキマは冒険者が冒険をしてきたログを眺めることでそのダンジョン攻略法を考えたりするゲームなんだけど、あまりにもバグが多すぎるから2chというログを読む事でスキマというゲーム攻略しているよね」といった書き込みが行われるなど、スキマをダンジョン攻略ゲーとして捉えるのではなく、バグ攻略ゲーとして捉えるというユーザが現れていた。

期待はずれの新クライアント

さて、一周年の時に発表された新クライアント開発は、その後3ヶ月程で70%まで出来ていると発表されたが、結局その新クライアントがお目見えしたのは2周年を目前に控えた頃であった。新クライアントのお披露目はAndroidβテストという形で行われた。言い忘れていたがスキマはiOSしかサービスされておらず、それまでAndroid版は存在しなかった。僕はAndroidiOSも持っていたため、βテストに応募し、当選したので遊んでみたのである

まず、フルスクラッチ制作されると言われていたのでUI周りも変わるのであろうと思っていたのは完全に裏切られた。見た目はほとんど何も変わらず、もちろんUIタップ回数まで全く同じであった。しか使用されているフォントが違うために文字が見切れていたりといった問題が発生しており、お世辞にも前のクライアントとくらべて良くなったとは言えなかった。また、恐らくはサーバクライアント間のプロトコルも何も変わっていないのか、プロトコルサーバ側に起因する問題は依然として残っていた(武器や防具を鍛錬すると+の数値が上がるという仕様があるのだが、連続して鍛錬を行うと必ず1以上は上がるはずの鍛錬値が上がらなかったり下がったりするといった問題は残っていた)。また、動作iOS版と比べるともっさりとした感じが強く、何のために作り直したのかわからないという感想であった。2chスレッドの中ではこの新クライアントは単に今までの旧クライアントAndroid移植したものであり、本物の新クライアントはまだ開発中なのだと言って聞かない人が長いこと存在した程である

その後、βテストでお披露目された新クライアントは3ヶ月後にAndroidリリースされ、その後さらに3ヶ月後にiOSでも新クライアントリリースされた。

クライアントで新たに現れる問題の山

鳴り物入りで導入された新クライアントであるが、先程も書いたように、旧クライアントと比べると確かに解決された部分もあるが、サーバ側が関わる問題は全く同じ問題を抱えており、新クライアント特有問題が多く発見され、実質的には旧クライアントの方がバグが少ないという状態であった。

僕はβテスト以降は特にAndroid版で遊ぼうとはしていなかったため、新クライアントが先行リリースされたAndroid版を遊んでいた人達を眺めていたのだが、Android版で起こっていると2chで報告されている問題がそのままiOS版でも起こるとなると大変だと思って眺めている位には、Android版は阿鼻叫喚の様を呈していた。iOS版での新クライアントリリースは3ヶ月遅れたが、この間Android版は何度もなんどもアップデートを繰り返し、その度に少しづバグ修正されていくのをみて戦々恐々としていた。

iOS版の新クライアントリリースされた直後、僕はスキマを遊ぶことができなくなった。これはゲームを起動した後すぐに「通信エラー」が表示されてタイトル画面に戻されるという問題で、これを回避する方法全然からなかったためだ。「あぁ、ログインボーナス貰えてたのがなくなっちゃうなぁ」と思ったのを覚えている。

しかし、この問題については2ch(正確にはTwitter経由であるのでTwitterの誰か)に「お知らせ」をタップしてからだと通信エラーが起こらない、というオカルトじみた書き込みがあり、それを信じてやってみると確かに通信エラーが起こらないということが確認できた。これで僕もスキマをプレイすることができるようになったのである。この時は本当に2chというログを読んでスキマというゲーム攻略している感じがしたものだった。

この時、僕は何故通信エラーが起こるのか、何故「お知らせ」をタップすると通信エラーが起こらないのか、といった事を確認したくなってiOS版の通信を眺めてみることにした。本来であればこのような行為を行うのは自分主義に反するため、それまでは行わなかったのであるが、突然ゲームプレイできなくなるというのは大変衝撃であったので、つい出来心で、という感じで眺めてみたのである

クライアントサーバ間の通信HTTP、つまり平文で行われており簡単通信内容をみることができた。タイトル画面から通信エラーが出るまでの通信内容はだいたい以下のような感じであった。

1. クライアントからユーザ情報送信

2. サーバからセッションキーが送られてくる

3. クライアントから並列で何らかの情報を取得するためのGETリクエスト送信

4. 並列で送られたリクエストへの返信をサーバが返すが、その全てに更新された(別の)セッションキーが入っている

5. ログイン完了してゲーム画面が表示される

6. クライアントで何らかの操作を行おうとしてサーバリクエスト送信

7. 6.のリクエストへの返事が4**でエラー

まり、3. のリクエストが並列で行われ、サーバ更新したセッションキーが 4. でクライアントに届けられるのであるが、恐らくは届いたセッションキー前後してしまうことで壊れてしまったと考えられる。

これが、何故「お知らせ」をタップすると解消するのかであるが、実は「お知らせ」を取得するためのURLhttp://…../login2 というURLへのGETリクエストであり、かつセッションキー必要としておらず、このURLからリクエストの返事にはセッションキーが含まれるという特殊URLであったのだ。つまり本来であれば 5. の状態の時には壊れたセッションキーを保持していたはずが、そこで「お知らせ」をタップすることで新しい(正しい)セッションキーを手にすることができるようになり、その後の通信はちゃんと行えるようになったのである(その後の通信では並列にリクエストを投げるパスは僕の観測した範囲では存在しないように見えた)。

この事に気づいたTwitterの人はどうやって気づいたのかはわからないが、よく見つけてくれたものである。ともかく、僕はこの情報に助けられ、スキマを再開することができた。

長くなったので https://anond.hatelabo.jp/20171221020636 へ続く

2017-11-05

Webフレームワーク選定の悩み

Webアプリを作るとき何を基準にしてプログラム言語Webフレームワークミドルウェアを選定していますか?

RailsCoC:convention over configuration)以外の手法活用して、開発を高速化するにはどうすれば良いでしょうか?

 

希望条件

  1. 素早いプロトタイピングscaffold機能など
  2. テストコスト削減:関数型プログラミングモジュール手法
  3. 性能:コンパイル型の言語

…こういう条件を備えていれば良いかな?

 

フロントエンド

  1. JSGUI作成Vue.js等のSPAフレームワーク

 

バックエンド

  1. データ永続化ストレージCRUD機能を用意できれば何でも良い?

 

試作

  1. Railsプロトタイプを作りデザインスプリント実践

 

本番

  1. 形が決まったらGolangGCPで作り直して本番投入

プロトタイプを作り直す手間を省きたい。プロトタイプと本番を同じツールで作りたい。)

 

サーバーAWSバックエンドElixir/Phoenixフロントエンド:Elmという組合せはあまり盛り上がっていないようなので、Rails代替手段は何が良いのか?気になります

2017-10-12

プログラミング界隈で言語フレームワークミドルウェアの移り変わりについていかなきゃいけないつらさなんて話はよくあるが

デザインとかその他表現そもそも表現に限らずなんだって流行り廃りはあるから

そこで生き残ってる人は結局アップデートしてんだよな

2017-09-11

https://anond.hatelabo.jp/20170910205249

まじな話をすると、N予備校プログラミング入門コースやるのがオススメ

https://www.nnn.ed.nico

一日8時間勉強時間があるなら、だいたい一ヶ月で終わる内容。

月額1000円だけどしっかり勉強すれば一ヶ月の無料間中に終わると思う。

もともとN高等学校のノンプログラマーの生徒をWebエンジニアとして就職させるために作られたカリキュラム講師曰く去年はこれで二人エンジニア就職を決めたらしい。

内容も相当親切に説明していて、プログラミングで何か作るだけじゃなくて、就職必要な環境構築やセキュリティまでみっちりやる。

http://qiita.com/sifue/items/7e7c7867b64ce9742aee#%E3%82%B3%E3%83%B3%E3%82%BB%E3%83%97%E3%83%88%E3%82%92%E3%82%82%E3%81%A8%E3%81%AB%E6%A7%8B%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%BC%E3%82%B9%E3%81%A8%E5%86%85%E5%AE%B9

講師が書いてる入門コースで習うことがまとめ。テキスト教材もあるけど授業も1項目を2時間で説明している。授業は週2の生放送とそのアーカイブがある。

↓みたいなことが学べる

----

Webプログラミング入門コース

Web ブラウザとは (Chrome, デベロッパーコンソール, alert)

はじめてのHTML (VSCode, HTML, Emmet)

さまざまなHTMLタグ (h, p, a, img, ul, tableタグ)

HTMLで作る自己紹介ページ (HTMLタグ組み合わせ, コンテンツ埋め込み)

はじめてのJavaScript (JS, ES6, エラー)

JavaScriptでの計算 (値, 算術演算子, 変数, 代入)

JavaScript論理を扱う (論理値, 論理積, 論理和, 否定, 比較演算子, if)

JavaScriptループ (ループ, for)

JavaScriptコレクション (コレクション, 配列, 添字, undefined)

JavaScript関数 (関数, 関数宣言, 引数, 戻り値, 関数呼び出し, 再帰)

JavaScriptオブジェクト (オブジェクト, モデリング, プロパティ, 要件定義)

はじめてのCSS (CSS, セレクタ, background-color, border)

CSSを使ったプログラミング (transform, id, class)

Webページの企画とデザイン (企画, 要件定義, モックアップ, 16進数カラーコード)

診断機能の開発 (const, let, JSDoc, インタフェース, 正規表現, テストコード)

診断機能組込み (div, 無名関数, アロー関数, ガード句, truthy, falsy)

ツイート機能の開発 (リバースエンジニアリング, URI, URL, URIエンコード)

Linux開発環境構築コース

LinuxというOS (VirtualBox, Vagrant, Ubuntuインストール, OS, CUIの大切さ)

コンピューター構成要素 (ノイマンコンピューター, プロセス, lshw, man, ps, dfの使い方)

ファイル操作 (pwd, ls, cd, mkdir, rm, cp, mv, find, ホストマシンとの共有ディレクトリ)

標準出力 (標準入力標準出力標準エラー出力パイプgrep)

vi (vimtutor)

シェルプログラミング (シバン, echo, read, 変数, if)

通信ネットワーク (パケット, tcpdump, IPアドレス, TCP, ルーター, ping)

サーバークライアント (tmux, nc, telnet)

HTTP通信 (http, https, DNS, hostsファイル, ポートフォワーディング)

通信をするボットの開発 (cron, ログ収集)

GitHubウェブサイトの公開 (GitHub, リポジトリ, fork, commit, 情報モラル)

イシュー管理とWikiによるドキュメント作成 (Issues, Wiki)

GitとGitHub連携 (git, ssh, clone, pull)

GitHubへのpush (init, add, status, インデックス, commit, push, tag)

Gitのブランチ (branch, checkout, merge, gh-pages)

ソーシャルコーディング (コンフリクト、プルリクエスト)

Webアプリ基礎コース

Node.js (Node.js, nodebrew, Linux, REPL, コマンドライン引数, プルリク課題)

集計処理を行うプログラム (集計, 人口動態CSV, Stream, for-of, 連想配列Map, map関数)

アルゴリズムの改善 (アルゴリズム, フィボナッチ数列, 再帰, time, プロファイル, nodegrind, O記法, メモ化)

ライブラリ (ライブラリ, パッケージマネージャー, npm)

Slackボット開発 (slack, mention, bot)

HubotとSlackアダプタ (hubot, yo)

モジュール化された処理 CRUD, オブジェクトライフサイクル, filter)

ボットインタフェースとの連携 (モジュールのつなぎ込み, trim, join)

同期I/Oと非同期I/O (同期I/O, 非同期I/O, ブロッキング)

例外処理 (try, catch, finally, throw)

HTTPサーバー (Web, TCPとUDP, Webサーバーの仕組み, Node.jsイベントループ, リスナー)

ログ (ログ, ログレベル)

HTTPのメソッド (メソッド, GET, POST, PUT, DELETE, CRUDとの対応)

HTMLフォーム (フォームの仕組み, form, input)

テンプレートエンジン (テンプレートエンジン, jade)

HerokuWebサービスを公開 (Webサービスの公開, heroku, dyno, toolbelt, login, create, logs)

認証利用者を制限する (認証, Basic認証, Authorizationヘッダ, ステータスコード)

Cookie を使った秘密匿名掲示板 (Cookie, Set-Cookie, expire)

UI、URI、モジュール設計 (モジュール設計, フォームメソッド制限, リダイレクト, 302)

フォームによる投稿機能の実装 (モジュール性, textarea, 303)

認証された投稿の一覧表示機能 (パスワードの平文管理の問題, 404, テンプレートのeach-in)

データベースへの保存機能の実装 (データベース, PostgreSQL, 主キー)

トラッキングCookieの実装 (トラッキング Cookie, IDの偽装, Cookie の削除)

削除機能の実装 (データベースを利用した削除処理, 認可, サーバーサイドでの認可)

管理者機能の実装 (Web サービス管理責任, 管理者機能の重要性)

デザインの改善 (Bootstrap, レスポンシブデザイン, セキュリティの問題があるサイトを公開しない)

脆弱性 (脆弱性, 脆弱性で生まれる損失, 個人情報保護法, OS コマンド・インジェクション)

XSS脆弱性対策 (XSS, 適切なエスケープ処理, リグレッション)

パスワード脆弱性対策(ハッシュ関数, メッセージダイジェスト, 不正アクセス禁止法, パスワードジェネレーター, 辞書攻撃)

セッション固定化攻撃脆弱性対策 (セッション, セッション固定化攻撃, ハッシュ値による正当性チェック)

より強固なセッション管理 (推測しづらいセッション識別子, 秘密鍵)

CSRF脆弱性対策 (CSRF, ワンタイムトークン)

安全なHerokuへの公開 (脆弱性に対する考え方, HTTPの廃止)

Webアプリ応用コース

Webフレームワーク (Express.js, フレームワーク導入, 簡単なAPI, セキュリティアップデート, Cookie パーサー, ミドルウェア, 外部認証, ロガー)

ExpressのAPI (app, Properties, Request, Response, Router)

GitHubを使った外部認証 (Passport, OAuth)

スティングフレームワーク (Mocha, レッド, グリーン, リファクタリング)

継続的インテグレーション (CircleCI)

クライアントフレームワーク (Webpack, Chrome 以外のブラウザでもES6)

DOM操作フレームワーク (jQuery, jQueryアニメーション, this)

AJAX (jQuery.ajax, クロスドメイン, 同一生成元ポリシー, x-requested-by, CORS)

WebSocket (WebSocket, WebSocketの状態遷移, Socket.io)

RDBとSQL (DDL, DCL, CREATE, DROP, INSERT, DELETE, UPDATE, WHERE)

データモデリング (リレーショナルモデル, 正規化)

テーブルの結合 (外部結合, 内部結合, 片側外部結合, JOIN ON)

インデックス (インデックス, 複合インデックス, Bツリー)

集計とソート (SUM, COUNT, ORDER BY, GROUP BY)

「予定調整くん」の設計 (要件定義、用語集、データモデル、URL設計モジュール設計、MVC)

認証とRouterモジュールの実装 (Mocha, supertest, passport-stub, モックテスト)

予定とユーザーの保存 (セキュリティ要件, UUID, 複合主キー)

予定とユーザーの一覧の表示 (非同期処理, Promise, then)

出欠とコメントの表示 (入れ子の連想配列, Promise.all, 子どもからデータを消す)

出欠とコメント更新 (Promiseチェイン, リファクタリング)

予定の編集と削除 (要件の衝突, 関数再利用)

デザインの改善 (this, グローバルオブジェクト)

セキュリティ対策と公開 (X-Frame-Options, Heroku環境変数)

2017-06-27

anond:20170627155813

スクリプト言語楽しいと思う人はアプリ寄りのことをしたいんだろうから

大学にいる間はまぁ我慢しておくんだな。

大学じゃアプリ開発なんて教えてくれないし、教えることができない。

情報系の学部で C を教えない方がおかしいだろう。

君たち大学生は将来コンパイラを書くかもしれないしOSミドルウェアの開発を

期待されてるんだよ。アプリ屋になることなど期待されてない。

2017-05-20

大企業に隠れているすごいエンジニア

paizaを始めとしたSIerDisで大企業(日系)にはロクなエンジニアがいないと思われてるっぽいけどいるとこにはいるんですよ。

知ってる人を紹介。

意識の高い大学生新入社員はこのあたりを目指すとみんなから尊敬されるぞ!



外部に出してる情報は少ないね

がんばって配属してもらおう。

2017-05-06

しかプログラミング一つにしても業界によって必要スキルは異なるわけだし、

Web系ならScala,JS,Ruby,ミドルウェアならC++,Java,システムならJava,分析ならPython,Ruby…)

会社必要になる知識漏れなく教えるなんてことは無理だと思う。

2017-05-05

http://anond.hatelabo.jp/20170504083902

エンジニアリング勘違いしてる人がときどきいるけど、エンジニアリングってのは工場を作ることであって、ライン工になることではない。

ソフトウェアエンジニアリングにおいてファクトリーはフレームワーク(あるいはミドルウェア)である

大企業においてフレームワーク(ミドルウェア)を作る仕事は専用の部署があり、名だたるOSSコミッタなど一流のプログラマーが在籍している。

2017-04-24

攻殻機動隊日本産業を後押ししてる

自分の周りの機械系やミドルウェア系の若い技術者の中には攻殻機動隊を見て今の道を目指したと言っている人が多い。

そういう意味で言えば攻殻機動隊日本産業を後押ししていると言える。

もう少し一般化して言うと、SF作品の持つ役割は思った以上に大きいのかもしれない。

小説でもアニメでもゲームでも面白いSF作品が生まれることを切に願う。

個人的には最近ではサイコパスが超面白かった。

2017-04-06

wordpress高速化が楽しくなってきた。

VPSミドルウェアwebサーバを変えたり、Mysqlチューニングやらなんやらで高速化してるんだけど

gtmetrix.comでハイスコアが出るとうれしい!ゲーム好きな人気持ちがなんとなくわかった。

でも、wordpressに書く記事がない。

高速化の経緯を記事にすればいいのかもしれないけどそっちにはあまり興味がない。

チューニングカーの同好会みたいなwordpress高速化同好会いかな?

2017-03-15

毎朝ぎりぎり出社の運用エンジニアです

今日会社障害対応

最近やっているプロジェクトはつまらない。

今やっている仕事の50%は運用プロジェクト関係

運用なので実装や開発ということもなく、何かシステム修正があればテスト、というような感じ。

障害も頻発するわけではないがそれでもつらい。

先輩はいい人で色々教えてくれるので、勉強になるからその点はうれしいのだけれど、

やっぱり運用プロジェクトというせいかモチベーションが上がらない。

最近は毎朝起きるのも遅い。

乗る電車もいつもぎりぎり間に合う電車

以前は出勤時間の3〜4時間前に起床して、好きなプログラミングをしたり

本を読んだり、ランニングをしたり自由に過ごしていた。

会社にはみんなよりも1時間早く来ていた。

きっとその頃は仕事が楽しかったのだろう。

会社に入ったばかりでやることはどれも新鮮。

少し難しい仕事も任されるようになってきてモチベーションもあったと思う。

仕事楽しいだけでなく充実感があった。

それが今では不思議と朝起きたくないのだ。

起きるのがつらいというか億劫

別に疲れが溜まっているわけではない。

目覚めは悪いどころかいつも目はぱっちりしている。

でも起きれない。ぎりぎりまで布団の中。

そして時間ぎりぎりになると焦燥感を感じつつのっそり布団から起き上がる。

まり憂鬱なのだ会社に行くのが。

この状況を打破するにはたぶん運用プロジェクトをやめるしかないのだろう。

今ではどうせ朝早く起きれないなら深夜までずっと起きていようか、なんて考えている。

会社をやめていく同僚にも言われたが、運用やってるとだれてくるらしい、私生活が。

そういって同僚はフリーランス転職した。

今では職場でも私生活でもいきいきしている。うらやましい限りだ。

自分フリーランスにはなろうとは思わないけども、少なくとも今のプロジェクト半年が限度かなーとは思ってる。

同じ環境にずっと居ても成長できるか不安だし。

それに自分市場価値はどんどん上げたいと思っているし、会社だけでなく会社の外でも評価される人間になりたい。

そういう意味でも今の運用プロジェクトに長く関わるのは、正しい選択ではないように思う。

運用プロジェクトの残念なところは、仕事の大半が顧客対応コミュニケーションコストでつぶれること。

特にお硬いお客さんだと本番作業をする度に、申請書類を書いて作業日の何日か前に提出しなければならないだとか。

障害対応であれば書類に発生日時や発生事象、発生原因、顧客影響、業務影響、対応策、横展開対応、再発防止策、etc..

なんてことをつらつら書かなければいけなかったり。

なにより障害が発生したらものによっては休日にも出勤しなければならないこと。

まぁ自分はその経験はまだ一度もないけども。ただ障害が起きて帰りが遅くなった時は本当に疲れる。

体力には自身があるけども精神的にはわりときます。人によるのかな?

つらつらと運用プロジェクトについてネガティブな事を書いたけども、悪いことばかりではない。

運用プロジェクトでは顧客対応必須だ。なので顧客との話し合いは上手くなる。

あと、運用エンジニアには広範な知識が求められる。

例えばフレームワーク脆弱性が発表されれば、どの程度影響があるのか、どのような対策を取れば十分か、そもそもどんな対策がとれるのか、とか。

ハードウェアミドルウェア障害が起きればそれに対する知識を駆使して対応を行う必要があるし、

ドメインが変わった、IPアドレスが変わった、となればシステム運用保守作業で影響がないか調査する必要がある。

なのでそのような対応を考える機会があるので勉強にはなる。

他にも必要知識として、プログラミング言語SQLはそこそこかけて、DBクライアントLinux操作、その他ミドルウェア知識必要になる。

なので現時点では自分スキルはそこそこ伸びてはいるのかなーとは感じている。

そんなこんなで運用プロジェクトは色々大変だよってことです。

理想運用プロジェクトで吸収できるものは吸収していって、早めに別プロジェクトに移っていきたいですね。

めんどくさいことが多いけどもつまらなすぎて潰れないようにとりあえずがんばります

明日仕事ですね。みなさん一緒にがんばりましょう。

2017-02-26

自動化って

暗黙知をなくす作業でもあるなぁと思った。

Ansibleとかはサーバー構築手順書をなくすことができるし、mavengemなどのパッケージ管理ツールセットアップ手順の暗黙知をなくすことができる(なんのライブラリ入れるーとか)

人にあれこれ聞くより、コード見て大体わかるような感じになっているとすごく助かるんだよなぁ。

もしかしてそういう感じで仕事を続けていけば、英語圏とかでも仕事できるようになるのかなぁ。

vagrant up ← コレだけで開発環境揃う環境、素敵に開発に入りやす

わしが1年1人でやっているやつ、ミドルウェア系には秘伝ミソが少し出来ているから、dockerで全部揃うようにしてみるかなぁ。Solr使っている部分とかしょうがないような気もしつつ、ローカルにあったほうが良いんだろうなぁ。あんま頻繁に開発しないし、そこは自分でやればいいか・・・。まあ多分solrコンテナを立てれば良いんだろう。

2016-10-07

http://anond.hatelabo.jp/20161006152658

元増田程の良い生活は出来てないけど、それなりに良い給料を貰って良い生活が出来ている同じ世代の独り語り。

収入民間給与実態統計とかで上位10%に入るくらい。

自分勉強出来なくて底辺高校出身高卒だけど、同じくラッキーだったりが続いて転職の結果、

年収ランキングに入る一部上場IT企業に中途で入り、今の生活に至る。

インターネット誕生して発展していく時代に生まれたから、ゲームオタクパソコンオタクであることが武器になって、

好きなことを仕事にできる業界に進んだことが大きいとは思う。

(プログラム弄ってたり、適当ミドルウェアを入れて環境を構築したりが遊びになる)

ただ、そうなれたことの一端に

>でもそれも、そんなカードも、両親が必死になって繋いで手渡してくれた大切なカードだった。

これが大きいんだと思う。

親が好きに生きさせてくれたことで今があるんだなぁと言うこと。

思い返せば、小さい頃から勉強ができなくてテレビゲームばっかりやってたけど、親がそれを怒ることは無かった。

怒られることが無いから、勉強別にしなくて良いものと思っていた。授業中は「なんでこんなことしてるんだろ。学校先生ってのはうるさい人だ」位に思っていたと思う。

勿論勉強しなくちゃいけない時期にテレビゲームばっかりやってたから、wikipedia底辺高校と書かれるような高校に入って

名も無き零細ITしか就職できなかったけど、それも自分の行動の結果だから人のせいにしたり後悔するようなことは無かった。

どちらかと言うと大学に行けなかったことで、人より4年早く就職できたことのほうが大きかったと思う。

当時の現場が良かったのもあるけど、単調なコーディングテスト手順書ばかりではなく、いろんなことをやらせてもらえた。

2000年問題の前はまだ中小規模の会社でも元請け結構あって、今みたいに頭数揃えて人海戦術ばかりな業界じゃなかったしね。

エンタープライズIT業界労働集約産業になっていく中、インターネットが発展したくさんの技術が生まれたことで、

オタク知識武器になる時代が続いている。

結果として、少なくとも現時点では学歴が無くても良い生活が送れている。

何か幸せかってのは生きてみなくちゃ分からいね

いい大学に入って良い学歴を持つことは武器にはなるけど、別に成功約束されているわけでは無いので、

生きていく力や生きる目的を探すことも大事時代になってきてるのかなと言うこと。

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん