読者です 読者をやめる 読者になる 読者になる

Re:ゼロから始めるNo Error No Life

ぷろぐらみんぐ的なことと趣味的な日常を少々

そんなこんなんでTypeScript始めてしまった

何かと移り変わりが激しすぎてJKかと言いたくなるJS

これがマスト

あれもマスト

それもマスト

ベストプラティクスやでーーー

ってまぁーよく記事で拝見します。 ※けーーーーっしてディスってないです

何がよくてわるくてダメであーだこーだ(ry

さてタイトルの通りTypeScript始めました(+ yarnも)

ただtutorialをやるだけだとあれなんでtutorialをちょっと改変してます。

やっている方も多いと思うのでソースをペターとしようと思う。

構成はこんな感じです

.
├── README.md
├── node_modules
├── package.json
├── public
│   └── index.html
├── src
│   ├── components
│   │   └── Hello.tsx
│   └── index.tsx
├── tsconfig.json
├── webpack.config.js
└── yarn.lock
# tscofig.json
{
    "compilerOptions": {
        "outDir": "./dist/",
        "sourceMap": true,
        "noImplicitAny": true,
        "module": "commonjs",
        "target": "es5",
        "jsx": "react"
    },
    "include": [
        "./src/**/*"
    ],
    "exclude": [
        "node_modules"
    ]
}
// webpack.config.js
module.exports = {
  entry: "./src/index.tsx",
  output: {
    filename: "bundle.js",
    path: "/build",
    publicPath: '/js'
  },
  devServer: {
    contentBase: 'public',  // 公開フォルダ
    port: 3000  // portの指定
  },
  devtool: "source-map",
  resolve: {
    extensions: ["", ".webpack.js", "web.js", ".ts", ".tsx", ".js"]
  },
  module: {
    loaders: [{
      test: /\.tsx?$/, loader: "awesome-typescript-loader"
    }],
    preloaders: [{
      test: /\.js$/, loader: "source-map-loader"
    }]
  },
};

// index.tsx
import * as React from 'react';
import * as ReactDOM from 'react-dom';

import { Hello } from './components/Hello';

ReactDOM.render(
  <Hello compiler='TypeScript' framework='view React' />,
  document.getElementById("app")
);

// Hello.tsx
import * as React from 'react';

export interface HelloProps { compiler: string; framework: string; }

export const Hello = (props: HelloProps) => <h3>Hello from {props.compiler} and {props.framework} !</h3>; 

// classの場合は以下の記述
// export class Hello extends React.Component<HelloProps, undefinde> {
//   render () {
//     return <h1>Hello from {this.props.compiler} and {this.props.framework} !</h1>
//   }
// }

こんな感じっすね。 ほんとこれだけで動くのがすげーって感動とTypeScriptがいいなーって印象

何がいいかって言われると伝えづらいけども

型を指定できることは、大きなことだと思う。

一応github

github.com

まぁー小物の所感は、さておき

みなさんストレスなき職場でストレスなき良きエンジニアライフを送りましょう!

突然ですがmacのターミナルで"nvm"コマンドが使えなくなった

=node/npmコマンドが使えないってやつね

typescriptの入門でもしながらJSの知見を深めようと考えて

npm install -g typescipt

をしようとしたら

そんなコマンドないわぼけえええええ

って怒られた

※正確には、ちゃいますが

んじゃいいやーnodeは生きているっしょの感覚

node -v

いねえええええ

ついこないだnvmでnodeのversionをv7.4.0にあげたばっかで

そのあと普通にNext.jsの入門してみたり ごにょごにょ遊んでいたのになー

ふと今日typesciptこんにちわの巻をやろうとしたらこれよ

おそらくの原因

brew経由でnvmをinstallしているんすけども

おきまりのコマンドの流れを一旦

brew list #この時点nvmさんは、いらっしゃっているの確認、一応以下もやった
brew list | grep nvm #nvmさんやっぱいた
brew update
nvm --version #いねーーーもちろん以下もいない
node -v #いない
npm -v #いない
which node #いない
which npm #もちろんいない
which nvm #おまえもいないのかああ

ひとまず原点回帰でエラー内容を再度確認

いやteminal開いたらひとまずbashでエラー吐いているし!

んじゃ該当箇所に該当fileはあるのか?

答え

いないわけで

brew update 

こやつが原因ぽかった っていうのもnodeのversionを上げる際にbrew経由でnvmを入れているので updateが勝手に走って頑張って最新のにしてくれたわけ その際にnvmが勝手にversion 0.33.0へbrewで上がったけども 実態がそもそもbrew経由でこやつ入ってない なのでnvmのversion 0.33.0を一生懸命PATH的には、見に行っているけど 実態もなけりゃよく見りゃフォルダすらなかった nvmのversionが上がった=こやつのメジャーアップデートと捉えていいのかな? ってことは、updateでなくupgradeを行ってビルドしてやらんことには意味をなさない。 なので 長いことbrewに関してお掃除も何もしてこなかったから ひとまず以下を実行

brew upgrade # パッケージの大幅更新の際はこっち
brew cleanup #いらなくなったversionなど消すひとまず消す

んでsehll再ログインしたらnvmコマンドが使えるようになった

※shellの再ログイン

exec $SHELL -l

もしくはterminalで新しいtabを開くといいっすな。

これでめでたしめでたしw

それではみんさん遅くなりましたが

あけおめです。 そしてストレスなきよきエンジニアライフを!

設計・開発・スキル不足

一人で開発をしてて思った。

圧倒的にデザインパターンや開発工程、そこらへんの基礎的知識等々に関してがほんと場当たり的でお粗末だったこと

対策

今後しっかりそこらへんの知識を蓄えてそれぞれに基づいたプロダクト作成を小規模で自分で作ってみる

これが大抵やるやる詐欺なのは否めない。

レガシーなコード

これってまぁーよく話題に上がる部分でもあると思うけど

レガシーって何かって考えた時にレガシーって言葉の意味をまず調べてみた。

主な意味

遺産、遺贈(財産)、受け継いだもの、遺物

と出て来た。

プログラミング界隈で使う場合てどんな時かなと考える

上記の意味の中で「遺物」という意味がある

おそらくこの業界でレガシーコードって言葉がさすのはこれに当たるのではないだろうか?

では、「遺物」とは?

前の時代から残されたもの。 「古代の―」 故人の残したもの。遺品。

google先生が教えてくださった。

google先生ありがとうございます。

着目すべき点とレガシーという言葉の使い方

個人的な見解として述べさせていただきます。

前の時代から残されたもの という箇所に注目

つまり前のversionと考えられる。

それは、versionによって推奨、非推奨があるということ

サポートから外されたメソッド、追加されたメソッドがあること

であると解釈できると思う。

なのでその言語の根源を構成している書き方をレガシーとは言わないし(古めかしい書き方であったとしても)

それは、その言語の根本的に正しい書き方であると思っている。

その書き方を知らないで上っ面だけ知った風に実装することは、後々命取りになりかねない。

→ 最近これで詰まった箇所があった

なぜこんなことを考えたか

今回ブログという形で書いている理由としては、

「自分のメモ」

これに尽きる。改めてプログラミングというものについて知ることが必要だと思ったし

改めて高級言語や高水準言語というのは、低水準言語と言われるような言語の上で動いているわけであってだな云々あれこれ

っと話は長くなりそうなので割愛。

ちゃんとその言語を理解するというのは、その言語の上っ面な特性とかでなく根本的な特性、性格、性質等々を理解したほうが応用、チューニング等々ができると考えている。

なのでやっぱそっち系の勉強は大切だなーって思う

さらにいうなら通信形式とかのプロトコル等々の勉強をしたい。

mizchiさんも言ってた

いずれは、macがーとかwinがーっていうなんかその辺のうんちゃらかんちゃらってのはなくなると思う。

というか自分自身では、MacBookProの外的、物理的スペックでLinux系OSがメインになったPCってのが開発者の主流になるんじゃないかなって思っている

OSに依存しない何かに依存しない統合開発環境オペレーションシステム的なPCが出て欲しい。。。

まぁー何書きたかったかわからんからひとまず終わりにする

みなさんにとって良きエンジニアライフであらんことを。

君の名は

「君の名は」を見た

見たい見たい言うててやっと映画館で観れた。

映画館で見るべき!

見る前の分析

ネタバレ等の記事やまとめ、投稿は一切見てません。

がCMを見た際に思ったことつらつら書く

以下ネタバレになって行きます

時系列ずれてて助け出すとかそんなんでしょ?

← 完全にこれだった。

冒頭の隕石が落ちるとこ隕石を見てる彼

電話が通じない点、微妙に時系列、視点を入れ替えている点

ただ腑に落ちないところもたくさんあったけど

素直な感想は、面白かった!

絵がとても綺麗で 他にもいい感じの構成だったと思う!

声優陣には疑問はあるけど(声優が完全にその人になってたからそのキャラになってたとは思えないから)

それでも面白い。

久々に日本映画でおもろい思った。

インフェルノ」を見た

こちらは、ラングドン教授シリーズ

毎度毎度楽しみにしているシリーズで書籍も文庫で全部読んでいる

ただこのシリーズで最高傑作だったのはやはりダビンチコードだったと思う。

原作と異なる展開、結末それは、それでいいけど

やはりこれだけの原作をに時間で表現するには限界がどうしてもあるかなと感じた。

王様達のバイキング11

久々に書くよー雑談だよー

最近の実務で書いたlaravel5のめんどくさかった箇所は、そのうちコードとともに載せるよー

表題の最新巻が出ました。なので買って読んだよ。

モチベーションが下がるたびにこの本を読んでます。

わくわくさせられます。わくわくしたいんです。ドキドキしたいんです。※恋する女子ではありません

是枝くん(主人公)の気持ちが痛いほどわかります。(レベルは、圧倒的に比べるレベルじゃないほど低いけどな)

より高みにより上により技術を

知的好奇心と飽きなき探究心を満たしたくて仕方ないって気持ちは、ほんとわかる。

最近自分の仕事に対してのモチベーションは下がる一方

決して金が欲しいわけではない。けど他人の尻拭いで精神的に圧迫されるのは違う。そうであるならばそれに見合った対価は欲しい。

知的好奇心を埋めるために時間をつくらなくちゃいけない現状にとても腹がたつのは本音。

それにしても本書でrustが登場しましたね。

いやーさすがValkyrja姉さん。

関数型言語ないし静的型付けの言語がお好きなようで

知的な女性って素敵ですね。それよりも自分の人生にバグなんてありえないバグなんて取り除いてやるってかっこいいなー素敵。

より底レイヤーの知識と通信系の知識、サーバの知識はもっと身に付けたいなって思った。

まだまだひよっこエンジニアである自分にとっては、毎度これ読んでモチベーションあげたいと思っている。

あっ新MacBookPro出ましたね。

これは買うでしょ。スペースグレーがいいね。

何年待ってたことか。

いずれはubuntuがメインのPC(できればノート)がほしい。

もっともっとこの一つの手段としてのプログラミングスキルをあげていかなければと思う。

最近の趣味は、動画でlive codingを見ること

※ドットインストールではありません。

自分とは異次元のハッカーのlive codingを見て写経(今はまだ見ながら処理を追っている段階)自分にトレースしたいなって思っている。

流行りも大切だけど何よりも基礎がない自分にとってコードを見る量が圧倒的に大切だなと思っている。

人がどんな書き方、どんな発想、どんな視点で書いて実装しているのか

いつまでも勉強ですね。

自分が憧れる人

いない。憧れは憧れでしかないと思うから恋い焦がれて憧れるくらいなら同じ土俵にあがれる努力をし目標、通過点にする方が大切と考えている。

例えばなぜトップエンジニアと言われている彼は、このような考えに至ったのか書き方をしたのかそれがベストと言ったのかを考えることが大切だと思う。

よし。いつか出会えるその日までに尊敬してもらえるように楽しく苦しむか。

それではみなさん

精神衛生が良きエンジニアライフを

JavaScriptを体系的に再入門中④

どんな理由であれやると言ったからには、やります

途中で投げ出すなんてくっそダサいことはしたくないので

ひとまずやると言ったからにはやります。それが初めましての言語だろうと笑

そんなこんなんでひとまずの進捗としてクソソースながら試行錯誤しつつnodeとEtc(テンプレートエンジン)、reactを使いつつ(redux)もな笑

自分が触る箇所としては、NodeとEtcなんすけどね基本は

まーーーたく画面すら出せんかった2週間前と比べたらひとまずuserの登録と一覧表示と詳細表示までは済ませた

sequelizeを使用してORMを使いたかったけどうまく使いこなせてないし

Promiseという難問にぶち当たるしって具合ですが

ひとまずsequelizeのtransactionの実装は、一部に使えて動いているんでよしとする

アソシエーション関連がまぁーーーめんどいな。

ひとまずエラーなくmigrateでき動きそうだけどまだ実装してない。

明日JSのFW発表会をやるらしい(・・・・・

俺Reactのサブ担当だったんだけど担当者が優秀だったからサボってました。

したらお休みとのこと

やべえええええええええ←今ここ

仕方ないからサイトを参考にrails + Reactで実装しますよ。

Reactの説明もしないといけないんだけども・・・まーーーたっくの付け焼き刃になりかねない。。。

それでも乗り切るために今日はやります。

できればはやく一人になりたいんだけど・・・・

あーーーーーーー人がいるのマジでちょっと・・・・・

集中できん。

慣れないことに慣れるJavaScript再入門③

まぁーなれるまで大抵一ヶ月くらいかかるのが自分です

ちょこーーーーっと慣れてきたかな

sequelizeもちょい癖がある感じ。。。。

あとはやはり処理フローの把握と記述の方法になれるまでにまぁー時間かかる

あとは、ほんとtry&errorですね

Scalaの小問題に取り組む

理由として再帰、末尾再帰ってワードについて理解を深めたらまた個人的に脳内ブレークスルーが起きると信じ

何かと個人的に脳内ブレークスルーは、何回か体験しているんだけど・・・・・

今回は、まぁーーーーーーー仕事に集中できてなさすぎる点が大いに問題である

先日日本にいいアーティスト兼DJがいない発言

訂正 母数が圧倒的に少ないのは変わりないけど

世界単位で活躍されているDJはいてる!

もっともっと活躍してもらいたい・・・ってもっとヒット曲を作成してもらいたい笑

たぶんできると思うんだけどなー

個人的には、テックハウスとかミニマルテクノとかが好きだからなーDJするにあたっては。。。。

最後に

良きエンジニアライフであらんことを!

今後は、もっと誰かの参考になるコードを恥ずかしげなく書いていけたらなー