Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

@umai_kocha

MEAN環境を勉強してみる備忘録

基本的に自分向け記事である(という宣言)

Webは好きだが、Webのソースは嫌い。
なんだかコンパイルがないとか不安になるし、
どうにも型らしい型が無いような感じがいけ好かない。
何よりWebの事業会社のCTOさんたちに鼻持ちならない人が多く
あまりお近づきになりたくない感じだったのですが、
背を向けるのもイヤだったので、勉強する。

デスクトップアプリ作成者にはきついお灸

自分の紹介的なもの。
- Windowsでの業務系アプリばかりを作っていた
- 老害レベルのVB.netとかDelphiとかやってた
- C#はそこそこ長い。
- Web?そんなの知らぬ!!っていう状態だったけど、さすがにWebをさわりはじめる。
- DBはOracle,SQLServer,PostgreSQL,MySQL,Sybase,DB2あたりは触ってるけど、NoSQLとかふぇぇぇ…状態。
- 転職を期にPHP触り始めたけど、なんだか慣れない…。

要するにクソ味噌レガシーエンジニアなわけです。
穴や粗があるかとは思いますがきつい突っ込みしないでね><
Qiita内のモダンな方々、こんな私が生きててすみません!!!

※人に見せるというところより、自分の記録に主軸を置いている記事です。
私のような、老害YEAH!!!Web!!BOOOO!!!な人には
「プロになるためのWeb技術入門」 ――なぜ、あなたはWebシステムを開発できないのか

こちらを読んでみていただきたい。
少しWebに足を踏み入れてみようかなって気持ちになるとおもう。

Windows+Docker

どうにもVisualStudioを入れる関係で、Windowsを手放せない状況なので、
とりあえず開発環境を作ってみようとする。
Dockerのことをさらっとみてみたけど、ゲストOSが要らないという時点で素敵なにおい。
ただ、最近のWeb開発者はMacが多い関係上、ぴったりと来る記事が中々見つからず、
Windows版も出たばかりっぽかったので、とりあえず敗走となる。

Windows + Virtual Box + Vagrant + CentOS

ほぼWebに対する知識ゼロに近い状態の私。
恥をしのんでN予備校に入校。N予備校
(フォローアップと生放送での配信が結構自分の中ではしっくり来たので結構良かったです。)

Web関係の勉強の足がかりを得たため、そちらを踏まえ、
下記の記事をまねしてVagrantを利用して環境づくり。
Vagrant(1.7.2)でCentOSをインストールする
Windows上にVirtualBox+VagrantでCentOS環境構築

はじめの1歩

コンソールでVagrantに接続。

接続には、Poderosaを利用。

ホスト は、localhost
プロトコルは、SSH2
ポートは、2222
アカウントには、vagrant
認証方法は、パスワード
Password は、vagrant

これらを入力し、OKを押下。
無事に接続できますように!とちょっと祈りつつ接続。

Nodeをインストール

接続が出来たらまずはNode.jsを入れるためにNodebrewを入れる。
Nodebrewを使ってNode.jsを超高速にインストールする方法
こちらを参考にし、
node --version
とコンソールに入力し、
v6.11.0
のようにバージョン番号が帰ってくる迄をやってみる。

ここで降って沸いた疑問。Apacheとかいらないの?

N予備校 「Node.js」から引用

Node.js とは、JavaScript でプログラミングすることのできる、サーバーサイド向けのプラットフォームです。 サーバーサイドとは、 サーバークライアント型のサービスのサーバー側のソフトウェアのことを指します。

要するにWebサーバだよってことと理解。
ExpressはNode.js向けのフレームワーク(裏っかわのやり取り系)。
AngularJSはフロント画面向けのフレームワークっと…。

初心者がNodeで躓いた点。

基本的に、Nodeで躓いた点はないのだが、
「なんだ、Javascriptじゃないか」という点。
自分が最初に触れたころから比べると大分様変わりしていたため、
1から触る言語のようで結構おろろ?となった。
ただ、基本関数型言語のような書き方はC#のラムダ式に似たものだったので、
なんじゃこりゃ!?とはならなかったのが幸い。
普通になにもしらない状態でvar hoge = function(a,b)=>{ console.log(a+b);}とか見たら
なんじゃこりゃ!!aとb殺す!!ぐらいになっていたかと思います。

RDB⇒NoSQL 意外といいやん?!

言葉が変わる。

  • テーブル⇒コレクション
  • select * from テーブル名 ⇒ db.コレクション.find()
  • where ⇒ db.コレクション.find({a:1}})
  • where a > 1 ⇒ db.コレクション.find({a:{$gt: 1}})
  • where a > 1 and a < 5 ⇒ db.コレクション.find({a: {\$gt:1 , \$lt: 5}})

言葉的だったものが合理的な書き方に変わっているが、
比較演算子に関しては、まるでCOBOLとかの時代に戻ったかのような感覚。

世の中ネコも杓子も関数型なんだなぁ…。

基本的に関数のような使い方ができる=Javascript側の書き方と似通った感じなので、
親和性が高いように思えた。
書いているうちにおもったのが、LINQに似ているということだ。
なんとなくC#との共通部分を見出しつつ、頭のなかの点と点を結んでいる状況。

Expressでアプリ作り。

続きはあとで

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
3
Help us understand the problem. What are the problem?