はてなキーワード: mvcとは
Railsで業務システムを作ると死ぬ。というかスタートアップの文脈以外ではRailsを使わない方がいい。
Railsって「他の何を差し置いても初速が重要!」「成功してから考える!」スタートアップにとっては最適だと思う。
でも要件が複雑で長期的に運用、保守する前提のシステムを作るのには全く向いてないんだよね。
Railsを選択した時点でMVCかつモデルにいろいろ押し込んだ密結合なアーキテクチャを採用していて、これが規模の大きく複雑なシステムにマッチしないってことをもう少し意識した方がいい。
「技術的負債」なんて聞き心地の良い言葉で済まされるけど、要は設計不備でしょ。
もちろん要件を鑑みて意識的にこういうアーキテクチャを採用するなら何も問題ない。
作り散らかす人にとってはどうでもいいのかもしれないけど。
とにかく、向いていないことにRailsを使うと当たり前のようにしんどい。
信者は絶賛するのはいいけど、向き不向きがあるってことも同時に伝えてくれたらうれしい。
負債を返すのはおそらく作ったのとは別の人になるので。
知り合いと飲んだら、過去の私と同じような状況であの日々を思い出して吐き出したくなった。
当時私が参加していたチーム・プロジェクトは美味しそうなFWを使っていた。
サーバサイドのエンジニアは片手ほどの人数で、採用時点でそのFWの経験があることを確認されていたし、別チームから転属してきたメンバーも何らかのMVCでWSGIなFW経験があり、わりとサクッと順応していた。
前職では業界未経験だったり、経歴を盛っていると思われるエンジニアもどきと仕事していたので、普通に公式ドキュメントを読み、FWのソースコードを確認することができる同僚との仕事はおもりがなくなったようで気楽だった。
3年前の夏、サーバサイドのチームに新人のN氏が加入した。新人と言っても別チームから来た年上の業界経験豊富なインフラエンジニアである。
別プロジェクトのクラウド化や縮小が当時の1年半ほど前から進んでいて、社内のインフラエンジニアはSREに名前を変えるような流れがあった。(実際にはインフラ、ミドルウェア、ネットワークに長けた彼らは相変わらずそれなりに仕事があったようだが)
その流れの中でN氏は、サーバサイドエンジニアをしてみようと決めたらしい。転向については1年前から部長に相談していたとのことだった。しかも、うちのチーム名指しで。これはちょっと嬉しかった。
さっそく、N氏には社内向けの新機能を担当してもらい、私がレビュー担当になった。
これがなんというか読むのが辛かった。確実に言えるのはチュートリアル絶対やってないということだった。
機能は満たすが、FWの書き方やお作法については部分的にググった結果がパッチワークされているような。
社内の各チームのアーキテクチャはエンジニアならだれでも知っていた、つまりN氏は知っていながら特に準備なしでやってきたわけである。
そこから始まる、レビューを通した実プロダクトを使ったチュートリアル。褒めるとこは褒めて、受け入れられないところは参考になる実装やドキュメントを提供する。
はじめからチュートリアルを一緒にこなした方が良かった。レビューで大幅に書き換えてもらうのは結構辛い。勿論プロダクトに使えるレベルのコードじゃないから仕方ないんだけど。
しかもN氏、臭いのである。脂汗を吸った服、毎日履いてくるジーパン、脱いだのが瞬時にわかるほど臭う靴。
当時は Visual Studio Live Share なんて無いし、ペアプロは5分で限界だった。
がっつり書き直しが入るようなコードの卒業には2ヶ月ほどかかった。(これは私が時間を十分にとれなかったのも悪かったし、N氏は前のチームの引継ぎ作業も並行していたので)
もう、色々思い出して悲しくなったから書いとくと
ちなみに知り合いのところは、最近の天気のせいなのか生乾き臭マックスの縁故入社の新人とのことで、当時彼にしてもらったように「ガンバ」と背中叩いておいた。
N氏は今も臭っているようだが今は別プロジェクトだ。スキルセットが増えている分、頼れるエンジニアに近づいたのかな。喉元過ぎればなんとやらで、忘れていた。
最近は私が別チームからの支援できた若手のフロントエンドエンジニアにレビューしてもらっている。
チュートリアルこなして、書籍や記事を読んで手を動かしたうえで相談をしながら実装を進めている。あんまりなものは見せられない。
クリーンコード、リーダブルコードなど、"美しいコード"を書くための本は知ってるけど、
例えば要件定義とUML図があってその解説をするような、"美しい設計"について書いた本/記事ってよく考えると知らない。
GoFとかのデザインパターンは設計だけど、「どう活用するか?」がメインで、
ある定義の中に埋め込まれた一部としてその姿を解説付きで見たことがない。
整理されたコードを書くことは設計かつ実装だけど、それが全てだったら上流/下流って世間の工程が分かれてる意味って?
「こんな一見勘違いしそうなややこしい要件を、こんな風に設計しました!」っていう例をたくさん見てみたい。
優しく博識な増田さんや、どうぞ教えてくださいな。
Samsung Odyssey(Windows MR / 日本未発売)
GPUはGTX 1080
カップ型オナホール
VRカノジョもプレイ済みであるがコントローラがほぼ手放せない事とWindows MRゆえか操作に問題がある事、あとなんか違かったので早い段階でプレイしなくなった
CM3D系はパッケージバリエーションとDLCが多すぎて訳が分からないので買ってない
手元と股間が見えないのは思った以上にやりにくい
手軽さはやはりない
書きたかったのだが賢者タイムの真っ最中で気力がなくなってきた
シンプルな感想としては、満足度は高いとは思う。ただ射精処理に課題があるのでカップ式か非貫通のオナホールは必須という点では手軽でない。(HMDの起動も手間)
MMDで3D動画(SBS/TAB)の作成を考えてる人にお願いしたい事になるが、3Dにするなら1080pでは解像度が足りないので4K(2160p)で作ってほしい(これは実際に自作しての体感)
4Kでも1080pの2D動画に解像感で劣るのでそういう意味では3D需要で8Kが必要かもなあなどと思う。(HMD側のスペック向上もこれからなのかもしれないが)
MVC方式を再生できるVRプレイヤーがあったら教えてほしい。
180°/360°はまだ体験してないのでなんとも言えないが、平面に圧縮する以上は失われる解像度があるはず。
部屋の都合上フルトラは必要ない事と、有機EL採用だったり解像度が高かったり視野角が広かったりWindows MR機の中ではスペックがよいので。
なお合計で600ドルほどかかっているので決して安くはない(輸入代行業者を通さずにアメリカ在住の友人に転送してもらった)。
比較対象がないのでなんとも言えないが、2Dでも動画再生は現状最高の環境では。とはいえ視野角は110°でも狭いとは思う。
動画以外のコンテンツ、特に昨今話題のVRChatはどうにも気が乗らない(ぼっちはどこまでいってもぼっちよ)のと、目がやられてしまう為連続で1時間以上被っていられないので本格的にはやっていない。
https://anond.hatelabo.jp/20170911110731
昨年、はてブでバズりまくったエントリにまんまと乗せられた実務経験なしのプログラミング初心者が
N予備校プログラミングコースのプログラミング入門 Webアプリコース(有料のプログラミングコースで一番最初にやるコース)を修了したので知見をまとめておきます。
そんな感じです。以下、理由。
入門コースの実践編となる3章からは各講義の最後に課題が出されて、
N予備校のGitHubリポジトリにプルリクエストを出すことで課題の提出に変えて、
学習を進めていくのですが、
https://github.com/progedu/intro-curriculum-3001
https://github.com/progedu/intro-curriculum-4023
ちゃんと内容を理解できている人の割合はさらに低いと思われます。
なぜそんなに脱落していくかというと、まあ難易度だったり色々あるとは思うのですが
~をするにはこういうプログラムを書けばいい!ということは教えてくれるのですが、
なぜ、こういうプログラムを書けば~ができるのかということについての説明が少ないです。
感覚としては、途中の式と解答だけが書いてある数学の参考書を読み進めているような感じで、学習者には途中の式の意味を自力で読み解く能力が求められます。
その過程でドキュメントをあたったり、自ら調べて解決する能力が必要です。
またアロー関数式だったり、三項演算子や論理演算子を用いた代入などの省略記法を多用する割にソースコード中にほとんどコメントを書かないことも初学者には難しいかなと感じました。
体系的な学習にも不向きです。
あとオブジェクト指向の説明をせずに、JavaScriptのオブジェクトを扱っていたり、
データベースの学習をする前に、MVCパターンを扱っていたり、ちぐはぐさを感じるところも多かったです。
ということで(他にもいろいろあるのですが)、未経験者が独学で進めていくのは厳しいんじゃないかな~というのが入門コースを終えての結論です。
たとえば保護者の方が専門のエンジニアで分からないことがすぐに聞けるような環境にあればよい教材になるかもしれません。
ただ中級者へのステップアップを目指している初心者がきっかけをつかむには良い教材になりえるとも感じました。
私自身、GitHub、Linux(Ubuntu)、Node.js、Expressフレームワークなど、自主的にはなかなか食指が動かなかった分野の知識を得ることができたと思います。
難易度は高いですが、中級者向けのまとまった教材というのはネット上にもあまりないと思いますので、ある程度経験のあるプログラマが知識を深めるために利用するのはありだと思います。
ただ社会人が学習を進めるにはまとまった時間の確保というのがネックになるとは思います。
N予備校の入門コースの想定学習時間は180時間だったと思いますが、私はこのコースを修了するのに400時間前後かかったと思います。
(今年の1月初頭からほぼ毎日午後を勉強時間に充てて、ようやく昨日入門コースを修了しました)
コースを終わらせることだけを目標にするならもっと短くできるとは思いますが、ある程度知識をつけて今後にいかすことを目標にするとなると、想定学習時間内でコースを終わらせるのは難しい気がします。
色々書きましたが、それでも月1,000円というのは破格の価格設定だと思いますので、気になっている方は挑戦してみてもよいのではないでしょうか。
などがおすすめです。 「「分かりそう」で~」のサイトには本当にお世話になりました。m(_ _)m
ただ特にプログラミング経験の浅い方に伝えたいのですが、N予備校の入門コースが理解できなかった、挫折したからといって、プログラミングができないということはまったくないです。
私自身、SEやプログラマとしての実務経験はありませんが、趣味でも仕事でもガンガンプログラムを活用しています。
ぜひ挫けずにプログラミングの学習を続けていただきたいなと思っています。
あとネット上にはN予備校のプログラミングコースのレビューも散見されますが、無料コースしかやってないんじゃないかなーというものが多いのでお気をつけください。
基本的に無料コースと有料コースは別物と考えたほうがよいと思います。
参考になれば幸いです。
ところで、N予備校のニコニコ動画再現コースが2017年度中公開予定になってるんですけど、本当に公開されるんですよね・・・?(※)
今、同じものを3回作り直しているんだけど、毎回完璧かなと思って作るんだけど、直したいところや、もっといいアイデアが思いつく。
間違いなく最初のバージョンよりも今のバージョンの方が使いやすくて、メンテ、保守性も高い。
これに関わってるのは自分だけなので、大きな作り直しとかできるんだけど、コレ、業務だったら絶対無理だよなぁと思う。
一行直すのにぼったくり価格出される件についてはてな村から分かってねーな素人はみたいなコメが多かったけど、結合度を下げたりして保守性の高い設計にしてたらもっとぼったくりほどじゃない価格で出せると思うんだよね(2000年代のオブジェクト指向、MVC論争、アジャイルはなんだったんだ?)
なんか脱線したけど、要求なんて素人が少し思考を整理しただけで完璧なものなんて絶対にできないんだから一発で十分なモノってできないんじゃないかなぁ
それをやってるMicrosoftはどうかしてると思うけど