「CRUD」を含む日記 RSS

はてなキーワード: CRUDとは

2017-11-11

anond:20171111123957

CRUDに適合してるものなら何でも交換可能だよな。

「ぜんぶブログ」でも「ぜんぶチャット」でも。

その人が最初にどのウェブサービス出会たかというのにすぎない。

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-26

プログラマーのススメ

日本人は全員プログラミング勉強した方が良い。

プログラミング簡単だし、IT企業なら開業資金も少額で済む。(最初パソコン回線プリンターがあれば十分)

 

自己資金で数カ月で軌道に載せれるようなネタしかできない。

 

IT起業の道のりを教えてあげるよ。

  1. 下請け他人が作って欲しいものを作って納品する=資金を増やす自転車操業の段階。
  2. 自社開発:自分で作りたいものを作って売る=自転車操業からストックビジネスに移行する。
  3. レベニューシェア下請けと自社開発の中間ビジネスモデル

 

増田投稿できるってことは、パソコンぐらい持ってるんだろ?

本屋図書館に行って、自分に合った分かりやすプログラミングの本を探してみよう。

 

仕事を取ってくる方法は、ソニックガーデンのやり方を参考にしたら良い。 https://www.sonicgarden.jp/

プログラミング入門

最初に1冊だけ推薦するなら「プログラミングの基礎」という本をお勧めする。 https://www.amazon.co.jp/dp/4781911609/

買う前に、著者のサポートページを見てみると良い。

 

プログラミングパラダイム(考え方)には4種類ある。(【】内は基礎となる計算モデル

計算可能理論で見ると、どれもノイマン型のCPU上で動作する点で同じと言えば同じと言える。(優劣はない)

ただ、筋の良いプログラミング作法を身に付けたいなら、最初関数型を理解しておくことをお勧めする。

関数型の中で一番簡潔かつ強力なのはOCaml」というプログラミング言語だ。(HaskellをやりたければOCamlの次に学ぶスムーズ理解できる。)

関数型言語を学んだ後なら、手続言語はすぐに習得できるだろう。

WEB開発

WebサービスWebアプリを作るのは簡単

  1. HTML
  2. CSS
  3. JavaScript
  4. PHP
  5. MySQL
  6. Linuxサーバー構築)
  7. TCP/IPネットワークセキュリティーの基礎知識

を学べば作れるようになる。3か月勉強すればものになるよ?

 

Webアプリの特徴は、システム構造ネットワークを介して「サーバー側とクライアント側」に分割されていること。(REST - Wikipedia

Webアプリを作るってことは、一言で言えば、データベースラッパーCRUD)を作るだけの話。

アプリ開発

スマホアプリは、GUIの仕組みが分かれば簡単に作れる。

iPhoneアプリ

iPhoneの仕組みは糞だから後回しにしてもOK

XcodeじゃなくてAppCodeで作れるような段階に成熟したら手を出しても良い。

まあ、iPhoneアプリは金のためなら避けられない道だと思うので、苦労覚悟で取り組んでほしいw

Androidアプリ

Androidの中身はLinuxJavaアプリを開発できる。今ならJetBrainsIDEKotlinで楽々開発できる。

日本じゃAndroid貧乏しか使ってないので、あまり金にならないかも。

資金集め

お前偉そうなこと言うのなら、誰か起業してやろうというやつにガッツリ寄り添って手伝ってやりな。

俺はハゲタカじゃないから、無知な奴から搾取することはしない。

というか、自分のことで精一杯だから他人のケツ拭いまでやる体力・気力・理由がないw

 

他人から金をもらうと相手支配下に置かれる。だから資金調達お勧めしない。

自己資金で行けるところまで行って、ダメならまた社畜生活に戻ればいいだけの話。(パソコンインターネットがなくならない限り、プログラマーならIT業界で食っていける)

 

俺は、NPO法人とか社会起業しようとしてる奴だけ無償で手助けすることにしている。(プロボノ

社会起業家は、社会変革の担い手として、社会課題を、事業により解決する人のことを言う。

社会問題認識し、社会変革を起こすために、ベンチャー企業創造組織化経営するために、起業という手法を採るものを指す。

プロボノ(Pro bono)は、各分野の専門家が、職業上持っている知識スキル経験を活かして社会貢献するボランティア活動全般。また、それに参加する専門家自身

 

おまえが将来、社会起業することがあったら増田で呼びかけてくれ。

増田で返答できる範囲アドバイスするよ。頑張れ!

 

(追記)プログラミングパラダイムの4分類は「日経ソフトウェア」という雑誌説明表記しました。

ちなみにSQLチューリング完全なので、問合型言語でもプログラミング可能です。 https://qiita.com/utgwkk/items/20e887645da18e460fee

かに俺は理系だが情報学出身じゃない。独学でプログラミングを学びました。技術的な誤りがあったらブコメで教えてw(夜露死苦

 

(追記2)マイクロソフト関数型言語F#」は、OCamlベースにして開発されました。

現在マイクロソフトで開発中の量子コンピューターではF#が動く予定だそうです。(将来OCaml知識が役に立つでしょう) http://ascii.jp/elem/000/001/569/1569477/

 

(追記3 10/28ブコメレス全部拝見しました。様々なご意見・ご指摘をいただきありがとうございます。大変参考になりました。

「何か既視感があるな」と思ったら、最近ホリエモンが「保育士は誰でも出来る仕事」と言って炎上してたのと似てますね?→「プログラミング簡単」(プログラマーは誰でも出来る仕事

プログラミング学習や実務で苦戦されている方が多いようですね? だとすれば、それを改善支援するサービスニーズがありそう。

具体的にはディアゴスティーニ雑誌みたいに「週刊 プログラミングゲームを作る」みたいな教材があればいい。

https://deagostini.jp/

拝承いたしました。(微力ながら、皆様のお役に立てるよう作ってみたいと思います。)

 

(追記4 10/28OCaml関数型言語メリットについて

ちょっと前に岡部健氏(通称:毛の壁、kenokabe)が、関数型言語を巡りQiita等で論争を巻き起こしていましたが、俺は是々非々岡部氏の意見に一部賛同していました。(全部じゃない)

関数型言語を難しいものとして敬遠するのではなく、まずは使ってみて便利だったら嫌う必要はないと考えています

構造プログラミング命令型、手続型)との対応で言えば、関数型プログラミングは再代入なしでも、

で同じことができます。(優劣はない)

最初関数型プログラミング習得しておけば、参照透過性に注意を払う癖が身につき、テストときに「組合せ爆発」を少なくできます

関数型言語はたくさんありますが、OCamlが良いと思ったのは(自分にとって)分かりやすい教材が揃っており、学習コストが低いと思ったからです。

プログラミングを学ぶとき、独学ではなく、周りに聞ける人がいるなら他の言語でもOKです。

 

(追記5 10/28)「iPhoneの仕組みは糞」=storyboardが使いづらいと思いました。あくま個人の感想なので、Apple関係者信者の方はスルーしていただければ幸甚です。(Swift開発者クリスラットナー氏は、Appleからテスラ転職してしまいましたが、今後もAppleObjective-CからSwiftへの移行を押すのでしょうか?)

幸いiOSアプリ開発は分かりやす教科書がたくさんあるので、初心者でも心配無用です。iOSアプリ開発は(最初簡単なので)気軽に始めてみてくださいw

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-08-28

https://anond.hatelabo.jp/20170826124852

自分も10年 rails を使って最近言語に移行することに決めた。

Rails はレールに乗れば高速だけど、レールとレールがちゃんとつながっているか実際に電車を走らせて脱線事故を起こさないとわからないのが辛い。そしてそういう脱線はよく起きる。

Rails は遅いのでパフォーマンスチューニングするときコードが歪み、長期的には見通しの悪いコードができる。そのチューニングのための予期しない改修コストが発生する。

レールを外れたことをしようと思って別にレールを敷設しようとしても地下にガス管が走ってて工事できないみたいな予想しなかった依存関係が見つかって結局高架や地下トンネルを作ろうみたいな大掛かりなことになる。

はいものの、適材適所だと思う。使い捨て簡単CRUDアプリを速攻で汚く作るなら Rails を選ぶと思う。

2017-05-31

http://anond.hatelabo.jp/20170530233852

からこそ、crud使えるようにフレームワークが発達したんだろうね

近いうちにアセンブラのようなわかる人だけわかるくらい抽象化してほしいな

2017-01-27

こういうWebプログラマって月20万くらい払えば来てくれるの?

要は「PHP+MySQL+JavaScriptで頼んだWebシステムを作ってくれる」人に来てほしい。会社地方単価で8掛けされる田舎にあるので地元求人見てるけど、月に15〜30万くらいの求人が多いし20万も払えば来てもらえるの?

2016-11-06

http://anond.hatelabo.jp/20161106094548

LaravelのCRUD程度ができる、CakePHPはやったことないけど同じPHPフレームワークだし覚える気はある。

jqueryアコーディオンとかは何も見ないでも作れるが他はネットで調べつつ。

PostgreSQLをよく使ってたけどMySQLはしたことない。

でもフレームワーク使うならSQL文ほぼ使わないだろうから追々覚えたら行けるだろ

って考えの大阪プログラマーだけど雇ってもらえます

2016-05-13

プログラミングの極意

師匠プログラミングとは深淵なる神の御業(みわざ)。あらゆることを可能とし、あらゆることが不可能であると知る。」

弟子「さすが師匠っす。私にはまだまだ理解できないっす」

師匠「当然だ。」

師匠「ところで弟子よ。お前はプログラミングを覚えて何をしたい?」

弟子「今はIT技術者が少ないといいます。この未曾有の危機エンジニアとなってこの町を、この世界自分の手で守りたい」

師匠「ふむ。良い心がけだ。精進したまえ」

弟子「ところで師匠

師匠「なんだ弟子よ」

弟子師匠のもとでC#プログラミングを学び始めて1年。if文だとかwhile文とかどうでもいいクソ知識を覚えて参りましたがやっぱり何の役にも立ちません。」

師匠「そうであろう。考えてみろ。お前は日本語を話せるが、アナウンサーにも小説家にも程遠いだろう?プログラミング言語を覚えるだけで何かできるようになると本当に思っているのか?」

弟子「そんな・・・だったら英語覚えて、おとといskypeで話しかけてきたカウガールキャッキャウフフしてた方がマシじゃないか

師匠「ちょ、おま、それアカンやつや」

弟子師匠バカ。もう知らない!」

世界コンピュータ端末があふれるようになって数年。

一般人Windows PCAndroidスマホを使う。*nixだのpicマイコンだのasicだのとは違う。

その時点において、かつて王道だったC言語を学ぶ意義はパンピーには無い。

ベーマガ失われた世界で、人々はプログラミングを見失い、

人が使ってるからという理由自分の使うアプリを決められ、

ひっきりなしに飛んでくる他人からメッセージに反応することを強要される毎日

師匠文字数字から初めて、基本的文法を覚えるだけで1年かかるか……そりゃつまんねーよな」

師匠ファイル入出力やってようやくCRUDが学べる」

師匠関数スコープを覚えて、ようやく構造プログラミングが学べる」

師匠「だが……学校じゃ文法やって終わりってんだからCRUD構造化もやらずに何ができるかってんだ。副作用とかどうでもいいことばかりは教えるくせによ」

師匠機能抽象化モジュール疎結合重要だろう。そのためのオブジェクト指向だろう。」

師匠「なぜ抽象化疎結合かといえば分割統治をしたいからだ」

師匠「なぜ抽象化分割統治をしたいかと言えば、人の短期記憶は5チャンクが限界からだ。つまりは頭の小さな人間が巨大なシステム理解するための知恵だ。

師匠HSPプログラムを書いていて、500行くらい書いたらもう頭がごちゃごちゃになって限界を感じるあの感じ(個人の乾燥です)」

師匠HSP名誉のためにも言っておくが、500行以内であれば簡潔だし、絶大な威力を発揮するツールだ」

師匠「逆にCは3行書いたら、その関数の非力さに頭が痛くなる(個人の乾燥です)」

師匠アセンブラに至ってはmov 1, $ax とか書いた時点で発狂する。なんでintel構文じゃないんだ!と」

師匠「つまるところ、プログラミングとは自由を勝ち取るために、人間限界と戦うことだ」

師匠「創意工夫をこらして、今できないことをどうやってできるようにするのか。どんな可能性があるのか」

師匠構造プログラミングをすればバグが出なくなるわけじゃない。OOPプログラミングがうまくなるわけでもない」

師匠プログラミングの極意とは現実と戦うという覚悟だ」


弟子覚悟wwwww。少年漫画の見すぎなんだよ。何か奇声あげたら変身してパワーアップてかwww?おめでたい奴だな。貴様師匠として利用価値がなさそうだ。このあたりで成敗してやる。カラオケ女の子デュエットしてやる」

師匠「本性を現しおったなぁぁっ!このバカ弟子がぁぁっ!!」

2014-09-02

最近Web開発に感じる大きな谷(主にRails

10年くらいWeb開発業界にいて、ここ最近Railsアジャイルな高速開発的なものの周辺にいる。今は開発者マネージャの間を行き来しつつ顧客窓口〜実装まで一通りこなしている。

あちこち渡り歩いて色々なエンジニアと一緒に仕事をしたり、お客さんに頼まれてエンジニア面接やらに顔を出したりすることがあるのだが、ここ最近Web開発はますます主力級のゴリゴリ書けるエンジニア(いわゆるフルスタックエンジニアと呼ばれるものも多分ここに入る)と大したことのないエンジニアの差が開いてきたように思う。

主力級エンジニア

主力級のエンジニアは1〜2回がっつり打ち合わせしてプロジェクト重要点とざっくりラフイメージを共有すれば、どんなに遅くても1週間もすればプロトタイプが上がってきてお客さんに見せつつ微調整し、いわゆるアジャイルとかスパイラル開発的なことができる。デザイナがいなくてもBootstrapでとりあえず最低限の見た目を作ってくれるので、とりあえずデザイナ無しで開発して最終的にお客さんが気に入らなければWebデザイナに見た目整えさせてテンプレ取り込み、という開発がここ最近のメイン。

ソースコードフレームワークRESTfulの基本概念理解されているコードなので、後日の機能修正の時にそのエンジニアが動けなくても自分フォローして修正することもできる。

仕事もしやすいし、実質1〜2人の稼働でサクサク進められるのでコミュニケーションロスもなく楽しい

大したことなエンジニア

一方、大したことなエンジニアは前述した流れが全くできない。

まず決定的なのは、開発が遅い。ちょっとしたデザイン無しのCMSリッチUIなし)をRailsで書くのに1週間かかっても終わらなかったりする。これじゃ生PHPで書くのと変わらないかそれより遅いので、Rails使う意味がない。

次に、品質が低い。できあがったと言われて念のためチェックすると、基本的CRUDレベルエラーが出たり、お客さんに見せるプロトタイプだと言っているのに初期データseeds)の整備すらされていなかったりする。本人のローカル環境で動いてるけどstaging環境にdeployすると動かないとかはよくある。

パッと見に分からない部分もひどくて、ソース確認すればあちこちどこかからコピペしてきたコードのつぎはぎで、HTML規約違反JavaScriptエラーまで放置されていたり。あと実装しましたと口頭で言っていた機能ソースコードコメントではTODOになっていたこともあった。

最後に、成長しない。開発上詰まった所なんかを主力級エンジニアに聞くのは構わないのだが、表層的な理解に留まり応用が利かない。30分〜1時間も主力級エンジニア時間を浪費しながらもまた同じ様なところで同じ様なミスをする。自分もよくプチ勉強会みたいな状態になったときには参考図書や技術資料ポインタを投げたりしているのだが、参照先を見て深掘りすることはほぼない。

なぜ「大したことなエンジニア」がはびこるのか?

厄介なのは、こうした大したことなエンジニアも、Railsであればあちこちのチュートリアル記事書籍を参考に、そこそこそれっぽく見える自作サービスくらいなら作れてしまうという点にもある。

彼らの作るサービスはまさに書籍チュートリアルサイトコピペ集大成だが、個人が趣味でやっているサービスとしては十分に動く。そして周りには「エンジニアです。個人でWebサービスも公開してます」となる。サービスの外からは内部のコード品質などはわからない。

プライベートで開発するのはむしろ奨励しているのだが、彼らはその拙い(あえて「拙い」と書く)サービスでもって「俺はもういっぱしのエンジニアだ」と勘違いしてしまっている様に思える。

だが違うのだ、お前が書いているシステムは「とりあえず動く」レベルのものであって、受託開発としてお金をもらってお客さんに納品するシステムや、数千万〜数億の売上を左右するような業務システムではその素人クオリティでは話にならないのだ。

適切な例外処理担当者ミスしにくい管理画面の設計、お客さんの想定ユーザ数に耐えられるレベルでのスケールする設計開発者が入れ替わっても保守が続けられるようにするための最低限のドキュメントなど、production level qualityに足りていない部分がいくらでもあって、そこまで考えられて「主力級エンジニアなのだ

感じる「谷」

こうした主力級エンジニアと大したことなエンジニアの谷は以前から感じていたが、ここ最近ではさらに顕著に感じるようになってきたように思う。

例えば、主力級エンジニアRailsだけでなくミドルウェアやprovisioning(chefとかansible)、最近ではdockerCIAWS新サービスなどについても各自追いかけていて、自分も含めてちょいちょい議論をすることがある。「最近のアレってどうなん?」とか「はてブでやたらXXX流行ってるけど、これって結局数年前のYYYの焼き直しじゃん」みたいな。

そんなところに大したことなエンジニアはてブRSSなどで用語は聞いたことがあるので混じってくるのだが、まず前提知識がなさすぎて議論にならない。大体「XXXマジすごいっすね〜(意訳)」で終わっていて、その技術の背景や今後どうなりそうか、自分達が取り入れることで業務効率や開発の楽しさが改善するのかといった視点がない。

他にも、ちょっとしたトラブルシューティングの際も、基礎がなさ過ぎて問題の切りわけができない。問題の原因がネットワークレイヤなのか、ミドルウェアなのか、アプリなのかすら判断できなかったり、そもそもアタリを付けるのが絶望的に遅かったり勘が悪い。

単に作業が遅いというのではなく、問題の切りわけというエンジニアとして最低限できないといけない事すらおぼつかないケースも見かける。

「大したことなエンジニア」の今後

こうした大したことなエンジニアは速度・品質難易度面で新規開発プロジェクトアサインするリスクが高いので、必然既存サイト運用メンテちょっとしたページデザイン文言修正)といったタスクが回されるのだが、最近この辺りも仕事がなくなってきているように思う。

というのは、お客さん側にRails Tutorial程度の開発知識を持っている元エンジニア趣味ちょっと触ってみましたレベルの人が増えてきたから。これは恐らくRails特有な所(自作Webアプリ簡単に作れる啓蒙がなされている)がありそう。

ちょっと考えてみれば、文言修正デザイン修正する程度の作業、外注に頼むと数万かかる上に見積やら稼働確保やらで数日〜数週間待たされるのに対し、担当者自分でやってしまえばすぐに済む話というのはちょっと考えれば分かるわけで。

# もちろんそれでも保守契約責任分解点の関係外注するケースはあるだろうが、Rails採用するようなWebサービスは速度重視のことが多い

そんな中、この「大したことなエンジニア」の人達はどうなるんだろうなあ、と思う。開発会社ではなくRailsシステム運用しているユーザ企業に行けば多少は需要あるのかなーとも思うけど、ユーザ企業はできないエンジニア雇うほど余裕もないだろうし。

せめてコミュニケーションスキルが高いとかそういう利点があればいいんだけど、変に自分が「エンジニア」というプライドがあるのか、窓口とか管理方面は率先してやろうとしなかったりもするし。

早めに「エンジニア向いてないよ」と言ってあげるのが良いのだろうか?

2014-03-26

http://anond.hatelabo.jp/20140326171737

CRUDするコードクリエイティブじゃないと気付いた時は、CRUDするコードを生成するコードを書くんだよ。

それすら既にあるけどな。

俺の書くコードクリエイティブじゃない。

俺の書くコードクリエイティブじゃない。


なぜって?

それは俺がコードを書き始めて数年経ったあの時、所詮俺の仕事は糞データCRUDすることだけだと気付いちまったからだ。


どう足掻いたってCRUDから逃れられない。

何の独創性も無い営業日報、環境破壊資源の浪費の象徴である発注データ、それをこねくり回す会計データ

まったくもって全部糞だ。


そんな糞をデータベースCRUDする、そんなコードを書く俺も糞だ。

いやデータベースなんてものがそもそも肥溜めなんだ、究極の糞溜めだ。

もう臭いまくって臭いまくって、あまり臭いの酷さにみんな麻痺してる。

こんなもの世界が廻っているなんて考えたくもない。


世界もっとクリエイティブ体現できるはずなんだ。

お前の「いいね」なんて誰も求めていないし、そんな糞データを登録するコードなんて誰も書きたくないんだ。


世界もっと無を求めるべきなんだ。

文明科学の発展が、無条件に人類成功幸せだと信じて疑わない、その糞頭から生み出される腐った常識こそ疑ってかかるべきなんだ。

無秩序に溢れ返る無機質な糞製品の山の頂に立って足元をよく見てみればいい、如何にその場所情動的で不安定で居心地が悪いかに気付くだろう。


世界もっと根本的で潜在的で本質的価値を求め、見つけ、引き出し、利用し、真の対価を支払い、相応の謝意を持つべきなんだ。

コストダウン競争力の源泉なんて、まったくもって死の行進にしか見えない馬鹿げたことだと気付くべきなんだ。

お前が軽んじ無視し遺棄したその価値は、必ずお前の首を絞めに戻って来るだろう、その審判の日にどれほど後悔し、改めることを一万回誓っても手遅れで時間を戻すことはできないんだ。


世界もっと独創的で個性的多様性に富み多幸的で、富みは薄く広く遍く遍在するべきなんだ。

コードを書く代償で得られる糞通貨に頼らなくてはならないなんて、あまり悲劇的で嘆かわしいことに気付くべきなんだ。

製品詐欺の様に売りつける片棒を担がなければならないことに、もっと宇宙的な罪悪感を持つべきなんだ。


そんな訳で今日は定時で帰ります

お疲れ様でした。

2014-02-28

去年はじめから現在まで

2013年1月か2月

プログラミング経験、ほぼ皆無。

HTMLCSS, JavaScriptちょっとだけ分かる

dotinstallとか見てブラウザタイマー作ってわーいって喜んでるくらいのスキル感。

プログラミング勉強したい

勉強したいけどスクールとかはお金かかるから嫌だ

→本を買ってやるのは安上がりだけど途中で挫折しそう

→じゃあお金稼ぎながら学んだらいいんじゃ

プログラマバイト探そう

求人サイトで見つけて応募してみる

経験でも大丈夫らしい

バイト始めることになった

バイト始まる

はじめは研修アルゴリズムPHPについて

課題を出されて、できたら業務に入れる

フレームワーク使って指定されたwebサービスをつくる

基本自分の力でつくる。放置される

誰も教えてくれない

今思うと初心者やらせるのはなかなかハード

ググってググってググりまくる

他のできる子はさらさらっと1週間くらいで終える

ひーひー言いながら2~3週間でなんとか終えた

この期間、ほとんどプログラミング以外のことしてない

なんとかなった

3月4月

PHPドキュメントを読む習慣がつく

ググってコードコピペして動かしてみる、という段階

動くと楽しい 分かると楽しい

このときくらいにパーフェクトPHPを読んだ。FWは、つくれる!

FWがなんたるかをやっと理解し始める

あーようするにURLを受け取って振り分けたり、DBからデータ引っ張ってきて画面に表示させたりするのね

分かった気になる←分かってない

HTTPリクエストについて気にしだした

GET/POSTでごにょごにょすればいいんだね楽勝だわ←全然分かってない

フレームワークはいくつも種類があることを知る

このころ、Sinatraという言葉を小耳に挟む。支那虎?

5月6月

FuelPHPを聞きかじって、何をトチ狂ったのか在宅でwebサービス受託をやる

まあ良い経験になった

フレームワークいくつかやって、web開発のいろんな概念tipsがたくさん頭に入ってきて、

あーあれかーくらいには思えるようになった

DBCRUD操作, ORM, DBマイグレーション, RESTfulとは, コマンドラインコード生成,認証周りのプラクティス ...

7月くらい

さて、バイトが本格的?になってくる

一人で開発 責任おもい

機能追加のタスク

ごく一般的機能

でもなんか躓いた。

書いたコードに自信が持てない

これでいいのか不安になって手が進まない

やっぱり自分で考えて経験したことのないことはなかなか難しい

DBのテーブル構成を理解するにも骨が折れた 命名規則大事

セキュリティで手直しはたくさんもらった

フレームワークにはDB操作ライブラリがちゃんとついてるのにそれ見ずに自分SQL組み立てて案の定エスケープしてないし、とか

必要ないところでCSRF対策してるし、とか

でも、なんとか完成させた

プッシュして、マージされて、できちんと本番環境で動いてる。やったね。

8月9月

Rubyを知った

PHPと違って()が殆ど無いし、;ないし、do~endとか何だよって感じだった。

ちょっとだけ触ってみた。使いやす

Railsも知った

それからは空いている時間の大半をRubyRailsにつぎ込んだ

まずはRailsTutorialをやってみた

テスト周りでつまづいたけどなんとか終わらせた

dotinstallやらミニツクやら、検索して出てきた記事・チュートリアルはとりあえず手をつけて学んだ

はじめはRuby理解せずにRailsをやっていたけど、すぐにRuby自体に興味が出てきた

はじめてのRuby・はじめてのプログラミング・たのしRubyプログラミング言語Ruby... 入門系の本を乱読した

PHPでさんざん苦労していたからか、Rubyオブジェクト指向を学ぶとなんの無理もなく頭に入ってきた

Rubyドキュメントの読み方を覚えた

その後、パーフェクトRubyで標準ライブラリやらGemやらSinatra支那虎じゃなかった)やらについて学んだり、

メタプログラミングRubyで黒魔術を学んだりした。巻頭のMatz言葉痺れたなー

バイトのほうも何とかこなせるようになってきた 成長すげー

9月10月11月

Vagrantをかじる

インフラ・ミドルネットワーク周りに興味がでてくる

AWSでいろいろ遊ぶ

メタプログラミングRubyは断続的に2~3回ほど読み返す

Rubyってほんと使ってて楽しい

webスクレイピングとか検索APIとか使ってムフフ画像をアハーンしたりして遊んでた

11月12月

Rubyと名のつく書籍を読みあさる

Ruby言語をつくろうだの、スクリプティングを極めようだの、JavaRubyがどうだの。

メタプログラミングだの、デザインパターンだの、テストだの、リファクタリングだの。

借りられる本は借りて済ませた。全部買ってると破産する

他にもRubyとつかない本もいろいろ。

達人プログラマーは途中で挫折した。そのうちもう一度読む

プログラマが知りたい97の何とか。いい本

Ruby関数オブジェクトからのつながりで関数型プログラミングにも手が伸びる

OOPと全く違う。

2014年1月2月

就活はじめるよー

まあ、エンジニア枠で探すことにする

エントリーめんどくさい

ので、1社受けて落ちたら次の会社エントリーするという作戦にした

無計画玉砕作戦

はいえ、なんとかなると思ってやってく

気を揉む期間

いろいろな会社採用ページ眺めていると気になること

入ってやる仕事の内容が分からない

やたらパララックスつかってゴテゴテにしてるわりに、何が言いたいのか伝わってこない

せめてよく使ってる言語くらいはのっけておいて欲しい。

気になる会社はいろいろ調べる

で、1社選んで応募して、選考が始まった

面接、失敗したなと思ったところもあったが

嘘つかない

知らないことを知ってるように話さな

は通せたので良かったと思う。

で、進んでいって最終面接。これもなんかよく分からないうちに終わってた

相手が適宜フォロー入れて話しやすいようにしてくれたのは覚えてる

うん、ぜひ当社にご入社いただけたらと思いますとのこと。やったね。

から気になってた会社ではあった。勝手リスペクトしてた会社

自分が憧れてる技術者さんたちが在籍してる会社でこれから働くことができる

いろいろと運が良かった。嬉しい

他の会社はどうしようかな。

受けてみたい気もするけれど、エントリーがめんどくさい

続けるかどうかは未定だけど、ひとまず休憩することにする

今は、関数型言語についての本買って読んでる。関数型、Rubyに劣らず楽しい

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