24ブロ

私が未経験からプログラミングを学んだ物語

Chat Space(24日目)

どうも24ブロです。

昨日は飲みすぎちゃって今日は二日酔いスタートでしたw

二日酔いながらも実は今日からチーム開発が始まりました!

私はチームBということで、4人でアプリ作成に取りかかるのですが、なんとチーム開発できる時間が朝9:00から朝11:00までと決まっております。w 期間は3週間

そして、私はスクラムマスターにw

なにを実装していくかというとこちらのアプリ↓ Image from Gyazo

私はスクラムマスターという立場で、チームに協力することになりました。

スクラムマスターについてQiitaでいい記事がありましたので、引用させていただきます。

スクラムマスタ☆

そのチームで最大のスピードを出すことがミッション。


スクラムが定義する用語にインペディメント(障害物)があります。
これを取り除いていく活動がメインのポイントに置かれている。


障害を見つけたらそれを解決に向かわせるように開発チームに促したり
チームが障害に対応しやすいように整理し、リスト化したり。
解決方法のアイデアを出したり、問題になっている技術的負債に対してチームが向き合うようなマインドを育てる。

最初に"ほとんど"と書いたのは、スクラムマスタはプロジェクトの終了がゴールではなく
より長期的にチームの力が最大化するような観点を持っているから。

技術的な成長を促すような活動を出したり、そのリソースを確保するように動いたりする。

簡単な例で言うと勉強会を設定するように提案したり、業務で関わった高度な技術の情報シェアをメンバに促したりすること。

そうしてチームが成長し、ガッチリ肩を組んだスクラム体制になっていくなかで、相乗効果的に技術力が上がるようにして、強いチームを作っていきます。

スクラムマスタはスケジュールに関しては責任は開発チーム自身に委ね、何を作るべきかはプロダクトオーナーの役割にしていることです。

中長期的にチームの能力を向上させ、プロダクトの品質を上げるため技術的負債を解消することや開発する上での小さな障害の積み重ねになっていて中長期の開発スピードにボディーブローのように効いてくる事象を取り除くことが一番のミッション。

開発チームはスケジュールと合わせて、忘れがちな中長期的な視点についてアドバイスなどを受け、何度もその判断を促すことが重要です。

アジャイル開発はチームワークがとても重要になっていく中で、スクラムマスターとしての責任も重大です!

視野を広く、先を見通して、チームワークよく頑張っていきたいと思います!

おしまい

ステップアップ(23日目)

急な質問なんですけど、

みなさんは、漫画と小説どっちが好きですか?

ちなみに私は漫画の方が好きです。

理由は、絵があってストーリーや登場人物をイメージしやすいからです。↓こんな感じw

f:id:qwe-ima-poi:20180927000346p:plain

この質問に答えなんてないんですけど、なぜこの質問をしたかというと

プログラミングを学ぶにあたって、イメージってすごく大切だと思うんです。

エンジニアはコードを書いてモノを作る仕事ですが、当たり前ですけど、コードは99%文字ですw

文字から、パソコンに指令が送られて、それが動作として機能として画面状に表現されます。

私みたいな想像力の乏しい人間は文字の意味だけでは到底、知識として定着しませんw

そこで周りの仲間に教えてもらっって、又は教えたりして少しずつ理解してきているのですが、今日はGithubの仕組みを図で説明してくれた仲間がいました!

それがこの図です↓

f:id:qwe-ima-poi:20180927001327j:plain

こうやって図を書いて説明してくれるとものすごいイメージしやすくてわかりやすいですよね!

これは、githubのイメージ図なのですが概念や実態がわかりずらいものは図にして表現していくと理解が捗ると思います!

今日は以上

おしまい

発表会(22日目)

今日は、ミニアプリ発表会がありました!

ひとり5分の時間を使ってこの1週間作り上げてきた努力の結晶を披露しようみたいな会がありました!

基本仕様は、 ユーザーログイン、ログアウト、サインアップができて ブログの投稿・詳細・削除機能がついていて ログインしていなくても全てのブログを閲覧できる

これが備わった

自作ミニブログアプリケーションの作成が課題でした!

各々が個性溢れるミニアプリを紹介してくれました!

動画を添付したアプリや、旅ログアプリ、バルス、未来創造型アプリ、和みアプリ、俳句アプリ、ハロウィン、ジブいやつなどなど

私も、宇宙型アプリを作りましたw

フロントはこんな感じ↓

Image from Gyazo

これは投稿画面↓

f:id:qwe-ima-poi:20180930083642p:plain

コメント機能も付いてます↓

f:id:qwe-ima-poi:20180930083657p:plain

期日が1週間しかなかったので、機能的には最低限の機能をつけただけのアプリなのですが、とにかくとことん見た目にこだわりました!

ポイントは

・CSSで「animation」と「transform」を使用して、処理は「keyframes」で実装することで惑星がクルクル回転するのを表現

・border- radiusで要素を丸くして惑星をイメージ

・materializedの大枠をいじってふわっと動くアニメーションだけ残して

あとは自分なりに太陽系の数も意識してページネイションしたりとw

こんな感じで画面実装にこだわりにこだわりました!

一つ一つ丁寧にいじったりしながら、宇宙空間をちょっとずつちょっとずつ再現していくのは、なんかクセになる楽しさで。時間もかかって労力も使うんですけど、完成する時にはたまらなく楽しく嬉しいんですね!😆

今回は簡単なミニアプリだけど、次は見た目も機能もみんなをびっくりさせるようなアプリ作りたいな〜

また、報告します。

乞うご期待!

おしまい

form forとform tag(21日目)

皆さんお疲れ様です!

今日は華金です! 1週間の頑張り、自分で自分を褒めましょう! リフレッシュしましょう!

今日のテーマはform forとform tag。

・form_for(モデルオブジェクト [, オプション]) do |f| end

・form_tag(リンク先 [オプション]) do end

引用先:Ruby on Railsドキュメント (v4.2.1)

こんな感じで、定義の仕方はわかっている人多いと思いますが皆さんはこれらの違いをうまく説明できますか?

ざっくり説明すると

①何かしらの指定したいモデルが決まっているときはform_forを使う

②そうではなく、検索窓のような何のモデルにも基づかないformを作りたいときはform_tagを使う。(なんのモデルも決まってないから、パスなどでピンポイントに送信先を指定する)

これが私の解釈です。

form_for: 汎用性

form_tag: 専門性

こんなイメージで使い分けてみてください!

今日は、あっさりとこの辺で

おしまい

テーブル設計(20日目)

[tech expert]通い始めてそろそろ3週間が経ちますが、渋谷の街はホントに不思議な街です。

朝早く渋谷校に向かう時は、殺風景で寂しさを感じる街並みですが、夜帰宅する時はたくさんの人で賑わっております。

僕が今日作成し始めたチャットアプリケーションは、完全に朝の渋谷状態。w

まずは、アプリケーションの実装で必要不可欠と思われるテーブル設計に取りかかりました。

テーブル名:user、groups など

カラム名:name、text、user_id など

型:string、integer、referenceなど

option: null:false 、add_index など

そんでアソシエーション has_many、belongs_to など

特に、中間テーブルを作成した時のAssociationの組み方は独特なのでおぼえといた方がいいです!

例)

user.rb
  has_many :groups, through: :group_users
  has_many :group_users


gorups_users.rb(中間テーブル)
  belongs_to :user
  belongs_to :group


gorups.rb
  has_many :users, through: :group_users
  has_many :group_users

これで多対多の関係を解消できるようです!

最終的にはこんな感じ ↓

f:id:qwe-ima-poi:20180925235330p:plain

その大枠とも言える要素を最初に設計した上で、アプリケーションを作成してくのが基本なんですね(゚∀゚)

これをGithubをとおしてスタッフからレビューをいただくのですが、これがもぅ

一生忘れないくらい学ばせていただきました。w

テーブル設計の概要もいい記事見つけたので貼っときます。↓ http://techblog.lclco.com/entry/2018/02/09/093000

こちらの記事も大変勉強になりますので参考にしてください!

明日は画面実装だ!

おしまい

DB(19日目)

日々楽しくてあっと言う間に1日が終わります。 どうも24ブロです。

今日はタイトルの通り、DBをとことんやりました!

Railsでデータベースをやった時は、マイグレーションファイル作成して、カラムを決めて、モデルを通じてデータを保存する場所という印象しかなかったんですけど、

今日はmysql上でのデータの検索や、更新・編集・削除や

なんて事を学びました。

SQLでは、データベースやテーブルの「作成/更新/削除」の他に、データの「登録/更新/削除/検索」、またデータを特定するための条件を指定することもできるみたいですね。

データベースの仕組みを理解することは、大切!

Railsでぼんやりしてたデータベースのイメージもよりはっきりしてきました!

明日からは いよいよ本格派チャットアプリケーション作成が待っているので楽しみですね!

おしまい

調査(18日目)

今回は調査というタイトルにしました。

エンジニアになる上で調査すること、これが非常に大切なことに気がつきました。

プログラミング言語は、たくさんの種類とそれぞれの規定から成り立っています。

もちろんその中で、ある程度inputしておかなければならない内容もあるのですが、

調べて改めて確認できることもたくさんあるんだそうです。

わからない事を調べる。

調べている途中にまたわからない事が出てきたら調べる。

それの繰り返しで「調査力」が身につくそうです。

以下にも「調査力」についての記事を載せときます

(ちなみに、[エンジニアの99%は調査で実装]なんて記事もありました)

https://www.sejuku.net/blog/879

これからエンジニアを目指す皆さんも、もうすでにエンジニアとしての道を歩まれているみなさんも、「調査力」について意識してみてください。(゚∀゚)

以上

お疲れ様でした

おしまい