少子化は解消するべき問題なのか?
http://anond.hatelabo.jp/20160605143345
やはり同じようなことを考えている人はいるんだな。
MVCのmodelについて認識違いをしていたのを修正したら、すこしプログラミング力が上がった
MVCについて誤った認識・理解をしていた。とくにmodelについて完全に思い違いをしていた。
プログラム設計をするとき、機能のもたせ方について人と意見がまったく合わず、言われることも理解できずに悩んだが、これはMVCのmodelの理解が誤っていたからだった。
改めてMVCを調べ直し理解が向上したので、悩む方向が絞られて少し楽になった。
※まだ完全に悩みから開放されたわけではない。。
ModelとはDBのレコードを表すClassの事で、DB操作する事が責務だと思っていた。
cakePHPの使い方を勉強している時に初めてMVCという物を知った。
cakePHPではmodelはDBのレコードを表すClassを作って簡単にDBへの値の出し入れをすることが出来るようになっていた。
だから、文章としては「modelとはビジネスロジックに責務をもつ」と読んでいたが、感覚的にmodelとはDB操作をおこなうClassのことだと思いこんでしまった。
そう思ってしまっているから、本来modelに書くはずのビジネスロジックを書く場所が自分の中で定まらず、その時々の考えであっちこっちに記述してしまうことになってしまっていた。
言葉通りに理解すれば良いだけだったのに、遠回りをしてしまった(-_-;)
池上彰「伝える力」を読んだので要約する
プログラミング業務にて先輩などに相談するときに、やりたい事を説明しなければならない事がよくある。そんな時、自分は文章でも口頭でもなかなかスムーズに伝えることができない。
そんな説明能力の低さをなんとかしたくて、池上彰の「伝える力」を読んだ。
練習として、まずこの本について説明をしてみた。
要約
[前提条件]
自分が深く知っていなければ、伝えようとしている物・事の内容は相手には伝わらない。だから、伝える前に自分が「伝える物・事」を充分に理解しておく。
[わかりやすく伝えるためのポイント]
- 伝える際には具体的な言葉を使うようにし、抽象的な表現になりがちな「〜的、〜性」といった言葉や、カタカナ語は使わないようにする。
- 難しいことでもできるだけ簡単に説明する。
- 相手の立場になった説明の仕方をする。「相手にとって、この話の内容はどういうことなのか」を中心に話す。
- 図を使う場合、図に使うテキストは重要な事のみにして文字数を少なくする。詳細な説明は本文、口頭で行う。
[聞いてもらう・見てもらうためのポイント]
- はじめに「つかみ」で興味を引く。「それどういうこと?」と思わせる。
- 会議では、自信を持って、一人一人の目を見ながら話す。
[ビジネス文書で伝えるときのポイント]
- 文書のフォーマットを身につけ、優れた文章の書き写し練習を行うことで表現力をつける。
- 報告書では5w1hを盛り込み、簡潔に記載する。
[文章力をつけるには]
- 自分の書いた文章を客観的に確認する手段をもつようにする。例えば、プリントアウトしてみたり、時間を置いてみたり、音読してみたりする。
- 他人のレビューを受けて意見をもらう。
- ブログを書く。
- 新聞のコラムを要約する練習を行う。
プログラミング力向上させる
プログラミング能力を向上させたい。
自分に不足している事を考えてみる。
足りないものは今やっている事で鍛えられていくか、鍛えられていない場合にはどういう対策をとるのか考える。
それを知るためには、他人の書いた仕様をたくさん見るのがよいと思う。
自分から生み出されるコードはたかが知れており向上していない。人のコードを読んで幅を広げる必要がある。
業務ではしっかりしたテストを学べない為、上記スキルが安定してきた時に自分で何かを作成し、そのなかてテストフローを導入してみる。
人の作ったものを見て学ぶ
今まで何度かコードリーディングを行ったことがあったが、時間ばかり使って何も身につかなかったように思う。だから、コードリーディングを避けてきた。
何も身につかなかったのは、コードリーディングを行うことで得たいものを明確にしていなかったからだと思えてきた。
今回は明確な2つの目的がある。
・コーディングテクニック
・コードの構成
とくに「コーディングテクニック」についてはコードを見ているだけでは気づかなかったりするので、写経を行って拾っていこうと思う。
何でも批判される世の中になった理由
iPhoneとandroidの良いところ悪いところ
最近iPhone5s から Nexus5xへと乗り換えたので、感じた両者の違いを書く。
iPhoneが優っているところ
[物理ボタン]
iPhoneの物理ボタンは今思えばかなり使いやすかった。
- マナーモードへの切り替えや、音楽を聞いている時の音量調整もポケットに入れたまま行える。
- とっさの時にはホームボタンを押せば、アプリは終了しホーム画面へ戻る。
これらの操作がNexusでは少し難しいものとなる。
- マナーモードへは、画面を一旦表示させる必要がある。
- 音楽再生中の場合だとマナーモードにするには画面操作が必要になる。
- アプリによっては、ホームボタンが表示されていないので、どうやればホームに戻れるのか迷うシーンがある。
- 音量ボタンと電源ボタンの位置が近く感触も似ているので、見ずに操作することが難しい。また、知らぬ間に押してしまっているなど、誤操作が頻発する。
[設定]
設定はどうしても難しいものだが、iPhoneの設定はNexusのものに比べて分かりやすかった。一つの例でiPhoneの「おやすみモード」とNexusの「通知を非表示」で比べる。
これはどちらも機能の意図としては「寝ている間は各種通知の音や画面の表示をoffにしておく」というもので、ネーミングからして「おやすみモード」のほうが機能イメージに近い。
Nexusには「通知を非表示」とメニューがあるが、どういう設定を行うのかよくわからない。
こんな感じで、Nexusにはよくわからない設定が多い印象。
[スクロール・タッチ]
Nexusを使って初めて感じたが、iPhoneのスクロールとタッチの感触はかなり優れたものだった。
Nexusでのスクロールは若干引っかかったり、
スクロールしているつもりが、たまにリンクをクリックした事になってページ遷移してしまったりする。
タップも、意図したところよりも下の要素をタップしたことになっていたりするときがある。
[コントローラー付きイヤホン]
iPhone対応のコントローラー付きイヤホンを使うと、iPhoneを取り出さずに音楽の再生停止・曲送り・曲戻し・音量の調整ができるが、Nexusだと再生停止・曲送りしかできない。
Nexus5xが優っているところ
[価格]
すごく安かった。
iPhoneだと10万円前後かかるところが、Nexus5xは35,000円ほどで買えた。
この価格ならiPhoneとくらべて多少不便なところがあっても許せると思えた。
[ウィジェット表示機能]
ホーム画面にウィジェットを表示できる機能は結構便利。
[googleサービスの連携]