Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

理念指向プログラミングのすゝめ

564 views

Published on

企業理念を大切にしている株式会社ロックオンでは日々の業務で企業理念をどのように体現していくかということは極めて重要なテーマである。
我々ITエンジニアが多くの時間を使うプログラミングの業務において、常に企業理念を意識しながらプログラミングができる一つの方法を提案した。
https://github.com/hideki-okajima/IOTW

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

理念指向プログラミングのすゝめ

  1. 1. 理念指向プログラミング 株式会社ロックオン 岡嶋
  2. 2. 自己紹介 ➤ 岡嶋秀記 ➤ 2015年に株式会社ロックオンへ新卒入社 ➤ データソリューション部 ➤ 受託開発チーム ➤ ロックオフの管理人に就任
  3. 3. ロックオフって何?
  4. 4. オンがあれば
  5. 5. オフもある
  6. 6. 福島にある一軒家
  7. 7. ハッカソンをしたり 勉強会をしたり
  8. 8. 遊びに来てね!
  9. 9. 今日はこっち
  10. 10. 企業理念
  11. 11. 創業当時から
  12. 12. 株式会社ロックオンは 企業理念を 大切にしている
  13. 13. 理念プロジェクト 社内に理念を浸透させる
  14. 14. My Impact On the World
  15. 15. 行動指針
  16. 16. 海を超えてベトナムへ
  17. 17. SUSHI
  18. 18. 株式会社ロックオン では常に行動指針 に沿った行動が 求められる
  19. 19. 会議
  20. 20. 顧客対応
  21. 21. それは なのか?
  22. 22. それは 握れているのか?
  23. 23. もちろん プログラミング中も
  24. 24. 株式会社ロックオン の若者エンジニア の皆さん
  25. 25. プログラミング しているときも 握れてますか?
  26. 26. プログラミング をしながら
  27. 27. 常に理念を 意識するのは難しい
  28. 28. どうすれば理念を 意識できるのか?
  29. 29. プログラミング言語 +
  30. 30. 言語
  31. 31. IOTW言語(ロゴ募集中) という言語を実装してみました
  32. 32. IOTW言語とは ・言語仕様はBrainf*ckと同じ ・以下の8個の命令だけで プログラミングが可能 Impact/On/The/World/! Lock/Off/?
  33. 33. IOTW言語とは 一つの”配列"と、配列上の位置を表す一つの"ポインタ"から成ります。 ・・・
  34. 34. IOTW言語とは 一つの”配列"と、配列上の位置を表す一つの"ポインタ"から成ります。 "配列"の各要素は1バイトの整数で、最初は値は 0 です。 0 0 0 0 ・・・
  35. 35. IOTW言語とは 一つの”配列"と、配列上の位置を表す一つの"ポインタ"から成ります。 "配列"の各要素は1バイトの整数で、最初は値は 0 です。 “ポインタ"は最初は配列の先頭を指しています。 0 0 0 0 ・・・
  36. 36. IOTW言語とは 一つの”配列"と、配列上の位置を表す一つの"ポインタ"から成ります。 "配列"の各要素は1バイトの整数で、最初は値は 0 です。 “ポインタ"は最初は配列の先頭を指しています。 この”ポインタ"を動かして"配列"を操作する命令を並べることで、 プログラムができあがります。 0 2 0 0 ・・・
  37. 37. IOTW言語とは 一つの”配列"と、配列上の位置を表す一つの"ポインタ"から成ります。 "配列"の各要素は1バイトの整数で、最初は値は 0 です。 “ポインタ"は最初は配列の先頭を指しています。 この”ポインタ"を動かして"配列"を操作する命令を並べることで、 プログラムができあがります。 ※詳しくはBrainF*ckのwikiを参照(https://ja.wikipedia.org/wiki/Brainfuck)
  38. 38. IOTW言語とは The: ポインタをインクリメントする。 World: ポインタをデクリメントする。 Impact: ポインタが指す値をインクリメントする。 Lock: ポインタが指す値をデクリメントする。 !: ポインタが指す値を出力に書き出す。 ?: 入力から1バイト読み込んで、ポインタが指す先に代入する。 On: ポインタが指す値が0なら、対応する Off の直後にジャンプする。 Off: ポインタが指す値が0でないなら、対応する On の直後にジャンプする。 ※詳しくはBrainF*ckのwikiを参照(https://ja.wikipedia.org/wiki/Brainfuck)
  39. 39. 言語設計のポイント 言語の仕様上、命令の出現率・出現順に偏りがある ・とにかくImpactが大切 ・できるだけImpact On The Worldの順がうれしい
  40. 40. IOTW言語とは ”h”の出力
  41. 41. IOTW言語とは ”h”の出力 ASCII文字コード
  42. 42. IOTW言語とは ”h”の出力 ASCII文字コード
  43. 43. IOTW言語とは ”h”の出力 値を104回インクリメント(Impact)して 出力(!)すればよい 10 4 0 0 0 ・・・
  44. 44. IOTW言語とは ”h”の出力 ImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImp actImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactI mpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpa ctImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactIm pactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpact ImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImp actImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactI mpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpa ctImpactImpactImpact!
  45. 45. IOTW言語とは ”h”の出力 ImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImp actImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactI mpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpa ctImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactIm pactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpact ImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImp actImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactI mpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpa ctImpactImpactImpact!
  46. 46. IOTW言語とは
  47. 47. IOTW言語とは ”h”の出力 ループ(On,Off)を使ってみる 104 = 10 * 10 + 4
  48. 48. IOTW言語とは ”h”の出力 ImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactOnTheImpactImp actImpactImpactImpactImpactImpactImpactImpactImpactWorldLockOffTheImpactImp actImpactImpact! 10 0 0 0 ・・・
  49. 49. IOTW言語とは ”h”の出力 ImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactOnTheImpactImp actImpactImpactImpactImpactImpactImpactImpactImpactWorldLockOffTheImpactImp actImpactImpact! 0 10 0 0 0 ・・・
  50. 50. IOTW言語とは ”h”の出力 ImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactOnTheImpactImp actImpactImpactImpactImpactImpactImpactImpactImpactWorldLockOffTheImpactImp actImpactImpact! 0 10 4 0 0 ・・・
  51. 51. IOTW言語とは ”h”の出力 ImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactOnTheImpactImp actImpactImpactImpactImpactImpactImpactImpactImpactWorldLockOffTheImpactImp actImpactImpact!
  52. 52. IOTW言語とは ”Hello World!”の出力 ImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactOnTheImpactImp actImpactImpactImpactImpactImpactTheImpactImpactImpactImpactImpactImpactImp actImpactImpactImpactTheImpactImpactImpactTheImpactWorldWorldWorldWorldLoc kOffTheImpactImpact!TheImpact!ImpactImpactImpactImpactImpactImpactImpact!!Im pactImpactImpact!TheImpactImpact!WorldWorldImpactImpactImpactImpactImpactIm pactImpactImpactImpactImpactImpactImpactImpactImpactImpact!The!ImpactImpactI mpact!LockLockLockLockLockLock!LockLockLockLockLockLockLockLock!TheImpact !The!
  53. 53. IOTW言語とは ”Hello World!”の出力 ImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactOnTheImpactImp actImpactImpactImpactImpactImpactTheImpactImpactImpactImpactImpactImpactImp actImpactImpactImpactTheImpactImpactImpactTheImpactWorldWorldWorldWorldLoc kOffTheImpactImpact!TheImpact!ImpactImpactImpactImpactImpactImpactImpact!!Im pactImpactImpact!TheImpactImpact!WorldWorldImpactImpactImpactImpactImpactIm pactImpactImpactImpactImpactImpactImpactImpactImpactImpact!The!ImpactImpactI mpact!LockLockLockLockLockLock!LockLockLockLockLockLockLockLock!TheImpact !The!
  54. 54. IOTW言語とは
  55. 55. で、何がいいの?
  56. 56. IOTW言語のすゝめ 命令数はたったの8個! Impact/On/The/World/! Lock/Off/? 1. 命令数が少ない
  57. 57. IOTW言語のすゝめ 8個の命令を覚えるだけ! 1. 命令数が少ない 2. 習得が簡単
  58. 58. IOTW言語のすゝめ 1. 命令数が少ない 2. 習得が簡単 3. コードの隠蔽性に優れている ImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactOnTheImpactImpactImpactImpactImpactImpactImpactTheImpactImpactImpactI mpactImpactImpactImpactImpactImpactImpactTheImpactImpactImpactTheImpactWorldWorldWorldWorldLockOffTheImpactImpact!TheImpact!Impa ctImpactImpactImpactImpactImpactImpact!!ImpactImpactImpact!TheImpactImpact!WorldWorldImpactImpactImpactImpactImpactImpactImpactImpa ctImpactImpactImpactImpactImpactImpactImpact!The!ImpactImpactImpact!LockLockLockLockLockLock!LockLockLockLockLockLockLockLock!The Impact!The!
  59. 59. IOTW言語のすゝめ 企業秘密のソースコードに 1. 命令数が少ない 2. 習得が簡単 3. コードの隠蔽性に優れている ImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactOnTheImpactImpactImpactImpactImpactImpactImpactTheImpactImpactImpactI mpactImpactImpactImpactImpactImpactImpactTheImpactImpactImpactTheImpactWorldWorldWorldWorldLockOffTheImpactImpact!TheImpact!Impa ctImpactImpactImpactImpactImpactImpact!!ImpactImpactImpact!TheImpactImpact!WorldWorldImpactImpactImpactImpactImpactImpactImpactImpa ctImpactImpactImpactImpactImpactImpactImpact!The!ImpactImpactImpact!LockLockLockLockLockLock!LockLockLockLockLockLockLockLock!The Impact!The!
  60. 60. IOTW言語のすゝめ あらゆるアルゴリズムが 実装可能! 1. 命令数が少ない 2. 習得が簡単 3. コードの隠蔽性に優れている 4. チューリング完全
  61. 61. IOTW言語のすゝめ あらゆるアルゴリズムが 実装可能!(理論上) 1. 命令数が少ない 2. 習得が簡単 3. コードの隠蔽性に優れている 4. チューリング完全
  62. 62. 何と言っても
  63. 63. IOTW言語のすゝめ 5. 常に企業理念を 意識できる
  64. 64. IOTW言語のすゝめ 5. 常に企業理念を 意識できる →株式会社ロックオンの 公式言語を目指す
  65. 65. IOTW言語のすゝめ ソースコードはGitHubで公開中 https://github.com/hideki-okajima/IOTW
  66. 66. IOTW言語は 握れているのか?
  67. 67. 行動指針
  68. 68. 行動指針 10 分で作った
  69. 69. 行動指針 10 分で作った 10 分で作った Googleでヒットな し
  70. 70. 行動指針 10 分で作った 10 分で作った Googleでヒットな し 無いから作った
  71. 71. 行動指針 10 分で作った 10 分で作った Googleでヒットな し 無いから作った 簡単
  72. 72. 行動指針 10 分で作った 10 分で作った Googleでヒットな し 無いから作った 簡単 世界初
  73. 73. IOTW言語は 握れている(確信)
  74. 74. ImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactOnTheImpactTheImpactI mpactImpactTheImpactImpactImpactImpactImpactImpactImpactTheImpactImpactImpactImp actImpactImpactImpactImpactImpactImpactWorldWorldWorldWorldLockOffTheTheTheImpac tImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpact!Th eImpactImpactImpactImpact!LockLockLockLockLockLockLock!ImpactImpactImpactImpactIm pactImpactImpactImpactImpactImpactImpactImpactImpact!LockLockLock!WorldWorldImpact Impact!TheTheImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactIm pactImpactImpact!LockLockLockLockLockLockLockLockLockLock!ImpactImpactImpactImpa ctImpactImpact!WorldWorld!TheTheLockLockLockLockLockLockLockLockLockLockLockLoc kLockLockLock!ImpactImpactImpactImpactImpactImpactImpactImpactImpact!ImpactImpactI mpact!WorldWorld!TheTheLockLockLockLockLockLock!LockLockLock!ImpactImpactImpactI mpactImpactImpactImpactImpactImpactImpact!Impact!LockLockLockLockLockLockLockLoc kLockLockLockLockLockLockLock!ImpactImpactImpactImpactImpactImpactImpactImpactIm pact!LockLockLockLockLock!ImpactImpactImpactImpactImpact!LockLockLockLockLockLock Lock!WorldWorld!ImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpact ImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImpactImp actImpact!LockLockLockLockLockLockLockLockLockLockLockLockLockLockLockLockLock!

×