【読書】プログラムはなぜ動くのか 2021/09/16

アセンブル

アセンブル

アセンブリ言語で書かれたプログラムをマシン語に変換する事。

アセンブル

マシン語アセンブリ言語に変換する事。

CPU

構成要素

  • レジスタ
  • 制御装置
  • 演算装置
  • ブロック
    の4つ。

    レジスタ

    プログラムが実行の対象として取るもの。
    メモリのようなもので、命令を格納できる。 命令の結果によってコンピュータ全体を制御している。

www.amazon.co.jp

【読書】童話でわかるプロジェクトマネジメント 2021/09/16

目的と目標がキー

 目的/目標が最重要です。
失敗するプロジェクトは目的/目標を間違えていたり、曖昧なまま「とりあえず」進めてしまっています。

失敗をわざわざ作ってしまう事もある

 プロジェクトは、立上げ→計画→実行→終結のように進めます。
実行→終結はあくまで前段階である、立上げ→計画で決めたことを実現するフェーズ。前段階で目的/目標を間違えていれば、一生懸命、失敗を作ることになります。

間違えた計画を実行しても、、、

 極端に言えば、チャーハンが食べたい人に、すごく美味しいショートケーキを渡しても満足されません。もっと言えば、本人はチャーハンが食べたいと言っているが、重めの料理を食べたいというのが真意かもしれません。それなら、別の料理を提案した方がコストを抑えて、満足度を挙げられるかもしれません。
 また、実際のプロジェクトでは関係者が複数名いる。彼らの意見が必ずしも一致するわけではないです。関心度や組織での権力に応じて適切な対応を取る必要があります。

「取り敢えず」やるではなく、「考えてから」やる

 実行は計画したものを実現するだけです。その前の計画を精密に立てる必要があります。
 その為には取り敢えずやってみるではなく、考える→実行という動きが必要です。(考えるために紙の上で取り敢えず手を動かすなどはOK)

www.amazon.co.jp

作業ミス防止チェックリスト

チェックリスト

心掛け

ミスしてる前提で確認
先入観、思い込みを捨てて俯瞰する
いろんな観点から見る

具体的な方法

チェック準備系

先に注意すべき点を決めて書き出す
やるべき事を分解、具体化する
マイルストーンを置く
手順書をなぞるだけでなく、作業の意味を理解しておく
ワーキングメモリーの節約(タブを整理するなど)

チェック中テクニック系

マニュアル、手順書を見返す
既に上手く行ってる物と見比べる、真似をする
ステマチックにチェックor入力(コピペやページ検索などを活用)
チェックリストを利用する
頭の中だけで考えず、書き出して考える
少しの違和感でも感じたら、質問するor書き出して手順書参照ではなく、そもそも論理的に正しい答えを作り合ってますか?と確認する
1つずつ確実に進める
イマジナリー上司に見てもらう

観点系

認識齟齬がないか?
チェック方法は正しいか?
確認を1回と決めつけない
そもそも手順書が間違っていないか?
実際に動かして良いものなら、実際に動かして問題ないかも確認する
報告する前に、途中まででなく最後まで作業できたか確認する
先のことを考える。相手(確認者や利用者)の立場になって見てみる
最後に小さな違和感も全く無いか?書き出して対応する
複数ファイルへの対応等は、先にリストアップ→その後作業する。作業した後でリストを見直し、過不足無いか確認する。

サーバーを触るetc...

私はWeb系のエンジニアですが、 今時、プログラミングのエラーは基本的に全て例外処理に入ってくれます。

なのでミスをしない事よりも解決を優先できますが、インフラ部分、DBやサーバーを触るときは複雑ではないが、ミスをしてはいけない事があります。しかし人間はミスをする生き物。

こういった仕組みを使ってミスしないように自分を補助しましょう。

全部は見なくて良い

いろんなチェックリストをあげました。
ただ、これを実際に確認するとき全部は見なくて良いと思います。
普段よりも丁寧に確認できることが目的なので。

使えるものは使う

大事なのは使えるものを使うこと。
テレビゲームの縛りプレイみたいな事はしなくて良い。
仕組みやツール、チェックリストのような概念や考え方など、
使えるものは使って、目的を精度高く達成できるよう心がけようと思います。

<button>タグクリック時、type="button"を指定しないとリロードされる。

ソースコード

<button></button>

<button type="button"></button>

甲だとクリック時リロードされ、 乙だとリロードされないんですね。

デフォルトはtype="submit"

<button>でtypeを指定なしにすると、
デフォルトのsubmitの振る舞いをするようです。

発生時

最近はReactでtodoアプリを最近作っていまして、
datepickerを<button>か、 nput[type="text"]にしようかと迷っており、
前者を試した時に現象が出ました。

余談ですが、クリックしたまま<button>の領域を離れて
クリックを離すとリロードされなかったです。

まとめ

<button>タグクリック時、リロードしたくないなら、 type="button"を指定しましょう。

echo "文字列"はecho 文字列でも大丈夫

 千里の道も一歩から。チリも積もれば山となる。

ということで折角ブログがあるんだから、

メインで勉強している以外のちょっとした事を

アウトプットしようと思いました。

 

 漫然と過ごすだけだと、1年で知識はプラス0ですが、

仮に毎日1個覚えると、1年で365個の知識が増える。

すると、メインの勉強内容も覚えやすくなりそうです。 

$ echo abcde | wc
       1       1       6

 本で↑を読んで「こうやって単語数、行数、バイト数を表示できるんだなあ」と思ったのですが、 

 

 $ echo hoge aaa yey fuga
hoge aaa yey fuga

 そもそも、こういう風にも文字列出力できるんですね、、知らなかった。

インフラ、DB、Linuxあたり、

重要だと思うので興味持って少しずつでも覚えていきたいです。

 

 話題に出した本は↓です。

www.oreilly.co.jp

RubyGold合格しました

RubyGold。

受験してきました。そして合格しました。

 

プログラミングの勉強なんて

やりだしたら一生終わらないと思いますが、

ここで一区切りというところ。

 

これからは知識の領域を広げたり(インフラ、フロントエンド等)

そこから得られるコンピュータの基礎、

入れた知識をうまく活用する。

 

そんなところを伸ばしていきたいですね。

 

f:id:jun_software:20210827223406p:plain

 

React入門をやりました

あべちゃんのフロントエンド大学 さんのReact入門をやりました。

ハンズオン形式で学習できて、イメージが掴みやすい。

勉強というよりも純粋に楽しんで取り組めました。

 

やっていく中で自身の失敗によって詰まった箇所は

コンポーネントのimport,exportを書き忘れたり、

環境変数を設定したがサーバー?(アプリケーション?)の再起動を忘れる位。

いずれもすぐに解決しました。

 

実はかなり以前にもReactのハンズオンを触ったことはありますが、

全然進みませんでした。

 

実務経験は2021/08/25現在で

丸2年と半年行かないくらい(Rails,jsはjQuery)ですが、

経験とともに勘所がわかってくるものですね。

 

経験を増やせば増やすほど、

自在にソフトウェアを操れるんだろうなと将来が楽しみです。

 

www.youtube.com