Submit Search
Upload
20180523 はじめてのIT勉強会 Part2 誤解されない名前
•
Download as PPTX, PDF
•
0 likes
•
237 views
Hiroyuki Suzuki
Follow
2018年05月23日(水) はじめてのIT勉強会で使用した資料です。
Read less
Read more
Engineering
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 52
Download now
Recommended
IoTの原点
IoTの原点
Shinichi Takahashi
さえきLT
さえきLT
Tsukasa Saeki
IT系プロボノのすすめ~エンジニアの遊び方
IT系プロボノのすすめ~エンジニアの遊び方
Yurie Saitoh
IoT縛りの勉強会! IoTLT vol.18
IoT縛りの勉強会! IoTLT vol.18
Seigo Tanaka
福岡Meetup/(カラビナテクノロジー株式会社:藤村賢志)
福岡Meetup/(カラビナテクノロジー株式会社:藤村賢志)
Members_corp
IT勉強会の勉強会資料1
IT勉強会の勉強会資料1
mamoru tateoka
AI とデジタル変革
AI とデジタル変革
Osaka University
About Relekino
About Relekino
Ryosuke Yamaguchi
Recommended
IoTの原点
IoTの原点
Shinichi Takahashi
さえきLT
さえきLT
Tsukasa Saeki
IT系プロボノのすすめ~エンジニアの遊び方
IT系プロボノのすすめ~エンジニアの遊び方
Yurie Saitoh
IoT縛りの勉強会! IoTLT vol.18
IoT縛りの勉強会! IoTLT vol.18
Seigo Tanaka
福岡Meetup/(カラビナテクノロジー株式会社:藤村賢志)
福岡Meetup/(カラビナテクノロジー株式会社:藤村賢志)
Members_corp
IT勉強会の勉強会資料1
IT勉強会の勉強会資料1
mamoru tateoka
AI とデジタル変革
AI とデジタル変革
Osaka University
About Relekino
About Relekino
Ryosuke Yamaguchi
勉強できてますか?
勉強できてますか?
健人 井関
ディープラーニングによる時系列データの異常検知
ディープラーニングによる時系列データの異常検知
Core Concept Technologies
IoT再入門。はじめてのIoT、何をする?何を選ぶ?
IoT再入門。はじめてのIoT、何をする?何を選ぶ?
Yuki Sakai
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
akihiro uehara
2018.05.16 DOA 朝会トーク | 自己紹介&勉強会のすゝめ
2018.05.16 DOA 朝会トーク | 自己紹介&勉強会のすゝめ
Koichiro Oki
Hajumete it pen
Hajumete it pen
SugawaraYosuke
n次請けSIerでもできること
n次請けSIerでもできること
陽一 滝川
Visual Studio による開発環境・プログラミングの進化
Visual Studio による開発環境・プログラミングの進化
Fujio Kojima
いちフリーランスフロントエンドエンジニアがなぜIoTに触れているのか
いちフリーランスフロントエンドエンジニアがなぜIoTに触れているのか
Seigo Tanaka
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
University of Tsukuba Linux User Group
@nifty エンジニアサポートの使い方
@nifty エンジニアサポートの使い方
Yuichi Saotome
SharePoint ユーザーのための IFTTT で IoT 体験
SharePoint ユーザーのための IFTTT で IoT 体験
Yoshitaka Seo
Pentaho ETL
Pentaho ETL
Hirokazu Tokuno
SINAP様 IoT×littleBitsブレスト
SINAP様 IoT×littleBitsブレスト
Seigo Tanaka
IT勉強会スタッフのススメ
IT勉強会スタッフのススメ
Serverworks Co.,Ltd.
エンジニアのキャリアを考える
エンジニアのキャリアを考える
MKT International Inc.
自治体DX概観
自治体DX概観
明平 吉本
すごいタスク管理(仮)
すごいタスク管理(仮)
Kakigi Katuyuki
自治体DXという意識改革
自治体DXという意識改革
明平 吉本
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PC Cluster Consortium
More Related Content
Similar to 20180523 はじめてのIT勉強会 Part2 誤解されない名前
勉強できてますか?
勉強できてますか?
健人 井関
ディープラーニングによる時系列データの異常検知
ディープラーニングによる時系列データの異常検知
Core Concept Technologies
IoT再入門。はじめてのIoT、何をする?何を選ぶ?
IoT再入門。はじめてのIoT、何をする?何を選ぶ?
Yuki Sakai
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
akihiro uehara
2018.05.16 DOA 朝会トーク | 自己紹介&勉強会のすゝめ
2018.05.16 DOA 朝会トーク | 自己紹介&勉強会のすゝめ
Koichiro Oki
Hajumete it pen
Hajumete it pen
SugawaraYosuke
n次請けSIerでもできること
n次請けSIerでもできること
陽一 滝川
Visual Studio による開発環境・プログラミングの進化
Visual Studio による開発環境・プログラミングの進化
Fujio Kojima
いちフリーランスフロントエンドエンジニアがなぜIoTに触れているのか
いちフリーランスフロントエンドエンジニアがなぜIoTに触れているのか
Seigo Tanaka
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
University of Tsukuba Linux User Group
@nifty エンジニアサポートの使い方
@nifty エンジニアサポートの使い方
Yuichi Saotome
SharePoint ユーザーのための IFTTT で IoT 体験
SharePoint ユーザーのための IFTTT で IoT 体験
Yoshitaka Seo
Pentaho ETL
Pentaho ETL
Hirokazu Tokuno
SINAP様 IoT×littleBitsブレスト
SINAP様 IoT×littleBitsブレスト
Seigo Tanaka
IT勉強会スタッフのススメ
IT勉強会スタッフのススメ
Serverworks Co.,Ltd.
エンジニアのキャリアを考える
エンジニアのキャリアを考える
MKT International Inc.
自治体DX概観
自治体DX概観
明平 吉本
すごいタスク管理(仮)
すごいタスク管理(仮)
Kakigi Katuyuki
自治体DXという意識改革
自治体DXという意識改革
明平 吉本
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PC Cluster Consortium
Similar to 20180523 はじめてのIT勉強会 Part2 誤解されない名前
(20)
勉強できてますか?
勉強できてますか?
ディープラーニングによる時系列データの異常検知
ディープラーニングによる時系列データの異常検知
IoT再入門。はじめてのIoT、何をする?何を選ぶ?
IoT再入門。はじめてのIoT、何をする?何を選ぶ?
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
2018.05.16 DOA 朝会トーク | 自己紹介&勉強会のすゝめ
2018.05.16 DOA 朝会トーク | 自己紹介&勉強会のすゝめ
Hajumete it pen
Hajumete it pen
n次請けSIerでもできること
n次請けSIerでもできること
Visual Studio による開発環境・プログラミングの進化
Visual Studio による開発環境・プログラミングの進化
いちフリーランスフロントエンドエンジニアがなぜIoTに触れているのか
いちフリーランスフロントエンドエンジニアがなぜIoTに触れているのか
Debug Hacks - 第4回つくらぐ勉強会
Debug Hacks - 第4回つくらぐ勉強会
@nifty エンジニアサポートの使い方
@nifty エンジニアサポートの使い方
SharePoint ユーザーのための IFTTT で IoT 体験
SharePoint ユーザーのための IFTTT で IoT 体験
Pentaho ETL
Pentaho ETL
SINAP様 IoT×littleBitsブレスト
SINAP様 IoT×littleBitsブレスト
IT勉強会スタッフのススメ
IT勉強会スタッフのススメ
エンジニアのキャリアを考える
エンジニアのキャリアを考える
自治体DX概観
自治体DX概観
すごいタスク管理(仮)
すごいタスク管理(仮)
自治体DXという意識改革
自治体DXという意識改革
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
PCCC21:株式会社日立製作所 「研究開発力向上のための研究DXソリューション」
20180523 はじめてのIT勉強会 Part2 誤解されない名前
1.
はじめてのIT勉強会 in 仙台 リーダブルコード Part2:
誤解されない名前
2.
鈴木寛之(すーさん)はこんな人 どんな技術でもやる雑草エンジニア (フロント、バック、ETLもやってます) 本を読むのが好き
人を助けるのが好き Confluence(社内Wiki)の運用・推進活動 社内LT(Lightning Talk)活動 社内リフレクションカード活動 ※実は教員免許も持ってます
3.
それでは、始めますー
4.
誤解されない名前
5.
誤解されない名前?
6.
誤解されそうなコードを 見てみよう!
7.
resultには何が入る? var result =
historyData.filter(“year <= 2011”); B:2011年以前を除いた履歴データ どっちの意味にもとれる A:2011年以前の履歴データ
8.
もう少し意味を 明確にしてみよう!
9.
これなら分かりやすい 2011年以前の履歴データを「選択する」なら var result =
historyData.select(“year <= 2011”); 2011年以前の履歴データを「除外する」なら var result = historyData.exclude(“year <= 2011”); var result = historyData.filter(“year <= 2011”); 意味が明確になった
10.
「コレ、どっちの意味?」 だったら それは、誤解されるコード
11.
「これは他の意味と 間違えられないか?」を 何度も自問自答しよう
12.
他の例も見てみよう!
13.
誤解される限界値
14.
誤解されるコード const CART_TOO_BIG_LIMIT =
10; if ( cart.item.count >= CART_TOO_BIG_LIMIT ){ new Error(“カートにある商品が多すぎます。”); <仕様> ショッピングカートには「10個」までしか商品が入らない
15.
先生! このコードバグってます!
16.
ん!?
17.
誤解されるコード const CART_TOO_BIG_LIMIT =
10; if ( cart.item.count >= CART_TOO_BIG_LIMIT ){ new Error(“カートにある商品が多すぎます。”); <仕様> ショッピングカートには「10個」までしか商品が入らない 実は、10個だとエラーになる
18.
誤解されるコード const CART_TOO_BIG_LIMIT =
10; if ( cart.item.count >= CART_TOO_BIG_LIMIT ){ new Error(“カートにある商品が多すぎます。”); <仕様> ショッピングカートには「10個」までしか商品が入らない LIMITという言葉はあいまい。 10を含む?含まない?
19.
分かりやすいコード const MAX_ITEMS_IN_CART =
10; if ( cart.item.count > MAX_ITEMS_IN_CART ){ new Error(“カートにある商品が多すぎます。”); <仕様> ショッピングカートには「10個」までしか商品が入らない MAXを使うと限界値が分かりやすい
20.
限界値を含める時は minとmaxを使おう!
21.
次は
22.
誤解される範囲指定
23.
誤解されるコード function print_int_range(start =
2, stop = 4) {…} stopという言葉があいまい A:「2、3」が表示される B:「2、3、4」が表示される
24.
分かりやすいコード function print_int_range(first =
2, last = 4) {…} lastだと理解しやすい
25.
最後の要素を含む範囲は firstとlastを使おう! minとmaxでも良いよ 1 2 3
4 5 first last
26.
次は
27.
誤解されるブール値
28.
誤解されるコード readPassword = true; A:パスワードをこれから読み込む必要がある? B:パスワードを既に読み取っている? readが紛らわしい
29.
分かりやすいコード これだと理解しやすい 読み込む必要がある:needPassword もう読み込んだ :isAuthenticated
30.
もうひとつ
31.
否定のブール値も 避けよう!
32.
誤解されるコード var disable_ssl =
false; SSLを無効にするという変数がfalseだから 無効の逆で、有効かな。
33.
わかりづらい!!!
34.
分かりやすいコード var use_ssl =
true; SSLを使うってことね
35.
ブール値は trueとfalseの意味を 明確にしよう! 否定形も避けてね
36.
次は
37.
使う人の期待に合わせる
38.
誤解されるコード public class StatisticsCollector
{ public void addSample(double x){…} public double getMean() {…} getMeanだから、O(1)か。ハイハイ。
39.
先生! Sampleを100万件 登録したら getMeanの処理結果が 返ってきません!
40.
ん!?
41.
誤解されるコード public class StatisticsCollector
{ public void addSample(double x){…} public double getMean() {…} <注意> すべてのサンプルをイテレートして total / numSample を返す
42.
O(n) だった。。。
43.
分かりやすいコード public class StatisticsCollector
{ public void addSample(double x){…} public double computeMean() {…} computeだから計算するのか。 処理に時間かかる可能性があるな。気を付けよう
44.
使う人の期待を 裏切らない名前を付けよう!
45.
今日のまとめ
46.
誤解されない名前をつけるためには 名前をより明確に! -> filter より
select, excludeを使う 限界値を決める時は? -> min, maxを使う 最後の要素を含む範囲の時は? -> first, lastを使う ブール値を使う時は? -> isやneedなどを使う -> 否定形を避ける ユーザの期待に反することは避けよう! -> get*()は軽い処理にしよう!
47.
最後にもう一度
48.
「これは他の意味と 間違えられないか?」を 何度も自問自答しよう
49.
キーンコーンカーンコーン
50.
これで 今日の授業を終わります!
51.
ありがとうございました!
52.
誤解されない名前をつけるためには 名前をより明確に! -> filter より
select, excludeを使う 限界値を決める時は? -> min, maxを使う 最後の要素を含む範囲の時は? -> first, lastを使う ブール値を使う時は? -> isやneedなどを使う -> 否定形を避ける ユーザの期待に反することは避けよう! -> get*()は軽い処理にしよう!
Editor's Notes
O(1)は、個数によらず一定の時間や手間がかかる操作、という意味です。 O(n)は、個数(n)に比例して時間や手間がかかる操作、という意味です。 ラージオーと言うらしい。
O(1)は、個数によらず一定の時間や手間がかかる操作、という意味です。 O(n)は、個数(n)に比例して時間や手間がかかる操作、という意味です。 ラージオーと言うらしい。
Compute 計算する
最後に表示する用
Download now