はてなキーワード: MVCとは
年明けたけど振り返っておく。
上半期は成長に停滞感があった。5 月で現職について満 3 年が経ち、コンフォートゾーンに入りすぎていた。
いつもと同じメンバーでいつも通り Rails や React を書く仕事に不満はなかったが、成長のためにもっとチャレンジングなことをしたかった。
夏頃、ちょうどチーム異動の打診がやってきたのはラッキーだった。
9 月からは新しいチームに配属されて、チームメンバーや仕事の進め方、技術スタックまで全てが変わり、新鮮な気持ちで働けた。
go が書けるようになったことや、MVC + ORM 以外のバックエンドアーキテクチャを学ぶことができたのは大きな成長につながったと思う。
APEX のランク戦でダイヤ帯に行った。春が終わる頃まではほぼ毎日欠かさずにやっていたと思う。
ダイヤ帯に行ってからは目標がなくなったので引退気味になっていたが。友達とおしゃべりしながら遊ぶ分にはまだまだ楽しい。
ポーカーはあまり上手くなれていない。戦法が凝り固まってしまっている。ターンでブラフレイズを打ったりポラライズベットができるようになればもっと強くなれると思う。座学がまだ足りていない。
人との出会いを増やすために一人で飲みにいくようになった。知らない人と話すのはいい。バーの店員と仲良くなったりした。
やっとマッチングアプリを辞めた。もう一生やらない。
https://celstore.shop-pro.jp/?pid=171912527
ダウンは似合わないけど、これはダウンとマウンテンパーカーの中間みたいな感じでよい。1LDK に売っていた。
映えスポットに行ったら服にカメムシが大量について萎えたが、俺の足はカメムシより臭かった。
RubyKaigi で行った。松坂牛を会社の金で食いまくった。
中目に住んで 2 年になり、旨い店がわかってきた。
めちゃくちゃ安いのに旨い。
2022 年短かすぎだろ。
(WEBエンジニアリング)未経験から(院卒新卒カードを使って)Webエンジニアになって(5年で)年収1000万円(の会社員と同等の手取りを本業副業合わせて)稼げるようになった話
工学部(情報系でない)の修士課程で、画像処理や機械学習を用いた研究をしていた。
PythonやLinuxについては少々経験したが、MVCに関する技術は一切触った事がなかった。
就活して、Web系のC向けの名の知れたサービスを自社開発している企業にエンジニアとして入社することになった。
※当時は今より牧歌的で自分のような人間が入社することができた。今はわからない。
PythonのFWを使ったWebサービスの開発を行なっていた。
とはいえ、腰を据えて開発している時間は少なかった。大きい企業の既存事業にいると開発とは無関係の運用や調整業務がかなりあった。
3年目くらいで副業を始めることにした。
上記の通り業務内で技術力を向上させることがむずかしかったのと、未経験で業界に来ているハンデを抱えていたのである。
Python以外の言語はほとんど書けなかったのでPythonでwebかスクレイピングの案件を探した。
5件ほどお祈りされたが、懲りずに応募し続けてたら採用された。Flaskの案件だった。Flaskは書いたことがなかったが採用された。
当時はその会社に Python が書けるエンジニアがいなかったので重宝されたし、仕事も任せてもらっていた。
契約は週15時間だった。その間にCOVIDが来て全てが在宅勤務になり、気付いたら週30時間まで稼働するようになっていた。。
当初の見込み通り基礎体力は身に付いていったと思う。
最初の案件を納品したあと、次の案件をもらい、段々仕事の幅が広がっていった。
Linuxサーバを触ったりDBサーバを触ったりphpを雰囲気で書いたりDockerfileを書いてECSの環境を構築したりなど。
※Golang, Rust, k8sなど人気の技術の案件は探してもちょうどいいものが見つからないのでチュートリアルをやる以上の勉強はできていない。
ちょうど良さそうな募集があったので応募したところ今度は一回で採用された。
給与も少し上がった。後ほど元の副業の給与も上がり、本業の給与も少しずつ上がった。
年収がいくらなのかよくわからなくなったので、月々の手取りを銀行口座から調べて、年収1000万円の会社員の手取りと比較すると大体同じくらいの金額になっていた。
犠牲にしていることといえば可処分時間くらいだと思っているので、TLDR節に書いた内容についてはそんなに無理がなくある程度再現性があるんじゃないかと思っている。
辛さでいえば大学院のほうが辛かった。
可処分時間ということでいえばCOVIDで通勤時間が無くなった影響はそれなりにある。
自分について
・要領は決していい方ではない
要領がいい人なら5年も掛けずもっと早く辿り着くのではないか。
今回、特にジョブホッパー的な動きはしていない。各職場(案件)に恵まれたこともあるし、器用さが足りないといえばそうだと思う。
エージェントは中抜きされるという意見もあるが、自分はSNSは長続きしないし、勉強会もあまり肌に合わずほとんど出席することはないのでエージェントを通してしか案件を見つけられていない程度の行動力しかない。
年収についてはおおむね満足するようになり、人間とは面白いもので段々欲がよく出てくるようになった。
モダンな技術は、レガシーな技術よりも、おしなべて責任範囲が明確であり、何かあったときのリカバーがききやすかったり、謎の負債が含まれるリスクも少なく、幾分か安心して開発ができる。枯れた理論は好きだが、新しい技術を先回りして身につけることにも興味が湧いてきた。
Python をウェブで使いたくないのは、HTML が Lisp の S式であって、Python のカッコが一対一対応しないからだろうね。Django のテンプレートに endif みたいなタグがあって、キモかった記憶があるで。すくなくとも、Rails は MVC の View が Lisp をベースとした Ruby に合致したから、流行った部分もあると思う。
就活時の適性検査って優劣じゃない名目の奴でも実質的な足切りラインみたいなのが設けられているところは結構あって、
IT系とかの場合、実績とかはそこそこある人間でもこの辺りで足切りされてそもそもアピールする場所にすら立てないみたいなことが結構あって、
自分は学生時代で開発系のコンテストで結果残したり作ったアプリがニュースサイトに取り上げられたりそこそこの規模のWebサービス運営してたりってまあまあ強みはあったと思うんだけど、
就活時この辺りですっっっげーーーー苦労した。
MVCやオブジェクト指向の意味がわからないどころかプログラミングすらやったことない同期が次々内定取る中で俺だけが最後まで取り残されてった。
この手の企業が「弊社は多様性が尊重します」「どんな人種、ジェンダー、性的指向の人でも働きやすい環境を!」とか偉そうなお題目を並べてるとつい白い目で見ちゃう。
「ああ、この人達の言う多様性という言葉の中に俺みたいな人間はどこにも含まれてないんだろうな」
「ちゃんと(今話題になっているポリコレ属性リストに書かれている範囲内の)多様性を尊重しますって書いとけよ」
そんなことをつい考えてしまう。
※ 再ポストを許してくれ。どうしても、聞く人がいないのだ。
当方は、元プログラマー。今となっては、家庭の都合で引退した身。嫌なことがあって、久しぶりにプログラミングを勉強したら楽しくて仕方ない。
たとえば、Ruby on Rails, Next with React on TypeScript とか最高にイカしていると思ったし、Kubernetes や Terraform で AWS, GCP を触れば IaC に感銘したし、Kafka や Elasticsearch といった NoSQL が RDB が進歩した上で共闘している様は夢のようだ。PHP や Java も元気にしていて、おじさん嬉しいよ。(最近の流行りだから Docker も触ったが、Vagrant なんかを触れた身からすると、正当な進化だよね。)ただ Python が人気なのは理解できないし、そんでもって C は苦手なままだけどな。あと、CSS と HTML のナレッジのアップデートについていけないのは歳のせいだろう。
閑話休題。それでタイトルの質問なんだけど、今のモバイルアプリの開発手法について知りたいのだ。もちろん React Native といったものがあるのは知っているが、この手のものは好きになれないのよね。どうしても無理から生じる齟齬が気になっちゃうし、もっと言えば「プログラミングを介して、設計思想に触れたい」からね。
まず、iOS の話題から。今は iOS は SwiftUI だけで書けば良いのかしら?昔は Objective-C と Storyboard を使っていたけど、新規のプロジェクトだと無視してもよいのよね?いや、だめだったら追加で勉強するだけだから良いのよ。その、加減がわからなくてね。自分としては Swift言語が好きで、SwiftUI は StoryBoard よりマシだと思うから、そこは問題ないのよね。10年前より、絶対に良くなったと思うし。あと SwiftUI と Swift言語の example 集とか、CocoaPods のまとめサイトなんかを教えてほしいな。公式だけじゃ物足りない。
次に Android なんだけど、現行なのは Kotlin言語 + Android Studio の UI ビルダーを強制なんでしょ?昔は Java言語 + XML の MVC という感じで、当時としては iOS よりまともなイメージだったけど、最近ふれたら蕁麻疹が出そうだった。なんというか、ちょっと体が受け付けない感じがする。だから、Android は昔の開発手法で良いのかを教えてほしい。あと、iOS と同様に example を大量に載せたページをお願いします。
こんな感じかな。追加で知っておくべきことがあれば、嬉しい。たとえば、PWA とか。自分としてはモバイルのプログラミングが理解できたら、ブロックチェーンや人工知能を除くと、ここ10年のナレッジはキャッチアップできたつもりなので満足なんだよね。あと気力があれば、作成物を増田に晒すかもしれないです。
時間 | 記事数 | 文字数 | 文字数平均 | 文字数中央値 |
---|---|---|---|---|
00 | 119 | 15462 | 129.9 | 41 |
01 | 63 | 5937 | 94.2 | 34 |
02 | 28 | 3483 | 124.4 | 60.5 |
03 | 14 | 2554 | 182.4 | 91.5 |
04 | 18 | 3496 | 194.2 | 68 |
05 | 13 | 2515 | 193.5 | 143 |
06 | 15 | 1083 | 72.2 | 29 |
07 | 44 | 7999 | 181.8 | 51 |
08 | 61 | 4097 | 67.2 | 47 |
09 | 70 | 12146 | 173.5 | 40.5 |
10 | 139 | 11875 | 85.4 | 50 |
11 | 114 | 10468 | 91.8 | 41.5 |
12 | 175 | 15576 | 89.0 | 47 |
13 | 168 | 17341 | 103.2 | 42.5 |
14 | 129 | 14969 | 116.0 | 56 |
15 | 147 | 12586 | 85.6 | 45 |
16 | 149 | 15799 | 106.0 | 42 |
17 | 158 | 15087 | 95.5 | 49 |
18 | 155 | 14187 | 91.5 | 53 |
19 | 109 | 13134 | 120.5 | 40 |
20 | 127 | 20863 | 164.3 | 44 |
21 | 113 | 16206 | 143.4 | 34 |
22 | 142 | 18248 | 128.5 | 41.5 |
23 | 133 | 23357 | 175.6 | 45 |
1日 | 2403 | 278468 | 115.9 | 45 |
ロリショタ(12), はすみとしこ(10), コンビニ人間(9), ぎこちな(3), 中坊(3), むっつり(3), MVC(3), ノールック(3), 見世物小屋(7), 藤井くん(3), アファーマティブ・アクション(4), 1枚(3), 抗議デモ(3), 媚び(21), Vtuber(20), チー(12), 接待(10), 黒人(42), V(11), VTuber(7), 人種差別(7), 児童(18), ショー(7), ディズニー(13), 白人(24), デモ(22), エロ漫画(15), リアリティ(10), 揶揄(18), 人種(16), 発達障害(20), 表明(14), ビジネス(16), 知能(15), 進化(12), 差別(90), 推し(16)
■コンビニ人間と発達障害と見世物小屋と普通の差別 /20200607142545(22), ■自分はなぜVTuber文化が気に入らないのかまとめてみた /20200607213322(17), ■その『コンビニ人間』のとらえ方は風評被害レベルだよ /20200608134203(12), ■ステーキがおいしくない /20200607193705(12), ■大人ってさぁと思った話 /20200607192611(11), ■243が3の倍数っぽくない件 /20200608130409(10), ■ペットボトルのラベル剥がさないやつ多すぎない? /20200608140825(10), ■ノットフォーミーって分かって使ってんのかよ /20200608170924(9), ■アニメの母親って絶対優しいよな、これも押し付けよ /20200608102134(9), ■これからプログラミングを習おうとする人はMacBookを買う意味があるのか /20200608104345(8), ■エロ漫画に出てくるロリショタ /20200608143718(8), ■Vtuberは別に嫌いじゃないけど結局キャバクラだしオタクがキモい /20200608122907(8), ■頭文字 /20200608200850(7), ■コンビニ人間はマジで大ッ嫌いだったなあ。嫌になるほど女作者だなこれって思った /20200608124138(7), ■ /20200608113100(7), ■@nhk_sekaima の投稿したBLMのビデオ何が悪いんだ /20200608171158(6), ■なんではてなーってソシャゲは叩くのにVtuberは擁護するん /20200608162145(6), ■ブラックリストが差別的とか言ってる奴はバカ /20200608215040(5), ■Vtuberはリアリティショーなのか? /20200607215453(5), ■anond:20200607142545 /20200608025534(5), ■マイノリティの私が自分の性別について話したら人権団体にポリコレ棒でぶっ叩かれた話 /20200608043750(5), ■ASDぽい娘と会話が出来ない /20200608112118(5), ■anond:20200608115937 /20200608120530(5), ■ /20200608140303(5), ■女が児童性愛者にならない理由 /20200608150014(5), ■LGBTの話を聞くとイライラするやついる? /20200608200910(5), ■大好きなディズニーの世界がツイステのせいで曇ってく /20200601124254(5)
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とかのデザインパターンは設計だけど、「どう活用するか?」がメインで、
ある定義の中に埋め込まれた一部としてその姿を解説付きで見たことがない。
整理されたコードを書くことは設計かつ実装だけど、それが全てだったら上流/下流って世間の工程が分かれてる意味って?
「こんな一見勘違いしそうなややこしい要件を、こんな風に設計しました!」っていう例をたくさん見てみたい。
優しく博識な増田さんや、どうぞ教えてくださいな。