5404某ITスタートアップで代表をやっています。基本的には技術関連の事を書きます。943目次JavaScript学習に役立つお話がありました。「プロトタイピング」でプログラムを試作する練習について紹介されています。WPJhttps://www.webprofessional.jp/how-to-approach-javascript-projects-what-the-tutorials-dont-tell-youJavaScriptに限らず、プログラミングの基本を学んだら何か動くモノ(プライベートプロジェクト)を作ってみたくなります。実際にどうやって進めたらいいのでしょうか?(前回に引き続き、今回もこのお話から学んでみたいと思います。JavaScript勉強会http://jsstudy.hatenablog.com/entry/javascript-refactoringJavaScript学習に役立つお話がありました。「リファクタリング」でプログラムを改善する練習について紹介されています。(前回に引き続き、今回もこのお話から学んでみたいと思います。アプリ作成の進め方として、以下の手順が紹介されています。...アプリ作成の進め方として、以下の手順が紹介されています。現実には、プロジェクトは完璧なコードをガンガン書くことではなく、たくさんの試行錯誤とリファレンスを幾度も参照して少しずつできあがるものなのです。実験とテストこの段階ですでに、たくさんの実験とテストを繰り返して動作確認をしてきました。動作するならば、いろいろ試して不具合がないか確認してください。現実:試行錯誤で改良を繰り返して、不具合を取り除いていくことは可能です。プロトタイピングとは?プロトタイピングとは、プロトタイプ(原型、試作品)を作ることです。ASCII.jpデジタル用語辞典システム開発の初期の段階で、ユーザーの動作確認用として作成する試作品のこと。Wikipediaプロトタイピング(Prototyping)とは、実働するモデル(プロトタイプ)を早期に製作する手法およびその過程を意味する。その目的は、設計を様々な観点から検証する、機能やアイデアを形にすることでユーザーから早めにフィードバックを得るなど、様々である。Prototyping)とは、将来完成する予定のソフトウェアの不完全なモデル(プロトタイプ)を作成することおよびその過程を意味する。プロトタイプは完成品についてのイメージをユーザーに抱かせ、顧客がそのプログラムを評価することができる。Wikipediaベータ版(ベータばん、β版)とは、正式版をリリース(公開)する前にユーザーに試用してもらうためのサンプルのソフトウェアである。ベータバージョン、試用版という場合もある。ベータ版は多くのユーザーに(主に無料で)試用してもらうことで、使い勝手やデザイン、性能などについての意見を汲み上げ、それをソフトウェアの開発に活かしたり、発見し尽くせなかった不具合を報告してもらい修正したりして、正式版をより良いものに仕上ることを目的としている。プロトタイプやベータ版の段階では、荒削りの部分やバグがあってもOK。改良を続けることで、徐々に完成度を高めていく手法がプロトタイピングです。試作品は、問題を具体化、見える化するために役立ちます。プログラミングでは、「情報」という具体的な形を持たない、曖昧なものを扱っています。「調理」や「建築」など具体的な形を持ってるものを扱う分野と比べて、プログラミングで扱う情報は抽象的、曖昧で把握しづらいという難点があります。CONFERENCE2012これまでの10年間、インターネットによってアイデアがオープン化され、シェアされるようになったことで、誰もがコンテンツを作り、世界中の人々と共有することができるようになった。それは主にビット(デジタル情報)の世界に限定されたものだった。これからの10年は、そのビットのプラットフォーム(インターネット)を利用して、現実の世界、つまりアトムの領域に変革が起きる。大量生産に合わないニッチな製品を、無数の個人が安く、素早く製品化し、グローバルに流通できるようになるのだ。21世紀の産業革命が始まる”]抽象的なもの、曖昧なものを扱う場合、なるべく具体的な形を与えることで、分かりやすさがアップします。最終的に明確な形を与える作業です。システム開発で、どのように試行錯誤を繰り返すのか?見ていきましょう。何かを作るとき、最初に「目的」があって、次に「手段」を選ぶ、という順番になっています。ショッピングサイトを作りたい。HTMLやJavaScriptを使う。(デプロイ、運用、保守)アジャイル開発システム開発は、開発サイクルを実行する回数によって、2種類に分類できます。ウォーターフォールモデルでは、開発サイクルを1回だけ回します。アジャイル開発では、開発サイクルを複数回回します。機敏な)迅速なソフトウェア開発を実現するアジャイル開発|コベルコシステムプロジェクト管理アジャイル開発で、開発サイクルの繰り返し方/進め方には、PDCAサイクルOODAループなどの方法があります。PDCAは、Plan(計画)→Do(実行)→Check(評価)→Act(改善)を繰り返して、改善を促す戦略です。急激な変化が多い環境(不安定)に向いている戦略という違いがあります。ハッカーウェイプロトタイピングのような考え方は、「ハッカーウェイ」(ハッカー精神)などと言われています。若き天才の野望』の担当編集者が取材。ハッカー精神あふれる社内の様子をリポートする。マーク・ザッカーバーグは、「速く動いて改良を重ねながら良いものを作ること」「オープンであること」といった文化などをハッカーウェイとして紹介している。Way強い企業を作るための一部として、我々はFacebookを多くの人が世界で大きな影響を受け、他の多くの人々から学ぶのに最も良い場所にするべくがんばっています。我々は独特の文化と経営アプローチを創り出し、それをハッカーウェイと呼びます。「ハッカー」という言葉はメディアの表現からはコンピューターに侵入する人というような不当にネガティブな意味合いがあります。現実には、ハッキングとは何かを素早く作り出したり、あることができる境界をテストすることを意味します。ほとんどのことと同じで、それは良い意味にも悪い意味にも使われますが、私が遭遇したハッカーの多くは世界に前向きなインパクトを与えたいと思っている理想主義者であることがほとんどです。ハッカーウェイは継続的な改善と反復を含む建設へのアプローチです。ハッカーは何事も常により良くなり、最初から完全なものは何もないと信じています。彼はただそれを改善しなければならないだけです。-それは不可能だと言ったり、現状に満足している人々を前にして。ハッカーはすぐに全てを良くしようとするよりはむしろ素早くリリースしたり、より小さな反復から学ぶことによって長期的に最高のサービスを作ろうとします。このことをサポートするために、我々は与えられた時間で何千というバージョンのFacebookを試すことのできる構造を作り出しました。-」と書いて仕事に取り組んでいます。Facebookのサービス開発では、プロトタイピングによる改良が大切なんですね?プロトタイピングと関連して、「構築主義」「ティンカリング」という考え方も取り上げてみます。ジャン・ピアジェと交流があり、プログラミング言語のLOGOを開発した。業績ジャン・ピアジェの構成主義の研究をもとにした、構築主義という独創的な学習法の考案者。パパートは、子どもが学習できる言語やプログラムは、熟練者に機能的に劣る事はない、と主張している。子どものプログラミング教育をためらう教師には「バグの体験こそコンピュータリテラシーには必要」と説いた。PCの父アラン・ケイとそのダイナブック構想に影響を与えた。レゴと共同で、LOGOプログラミングで動くロボットおもちゃマインドストームを開発した。title=”いかにして問題をとくか”]プロトタイピングは、構築主義と共通していることが分かります。=最初から完璧なものを作る(間違えない)よりも、間違いを修正できる方が重要。プロトタイピングは、「丁寧に作るよりも、雑な方が良い」という意見もありました。Mediumhttps://medium.com/titech-eng-and-design/とにかく雑に作れ-2f87cc00eb85学生たちを見ていると、きちんと議論して、きちんと設計して、きちんと何かを作ろうとするみたいです。ときには副作用を考慮して、やっぱり作るのやめようかという話になり、再び議論に戻ることもあります。方針が決まったら、雑でもいいからすぐに作り始めたほうが効果的なのです。そのことを「構築主義(コンストラクショニズム)」と呼びます。実際に手を動かしながら何かを作ることで、答えが浮かび上がってくるのです。「雑であること」のほうが重要で、たとえば「まだ完成品でないことが相手に伝わる」「未練なく捨てられる」「厳しいフィードバックを受けても心理的に平気(だってまだ雑なやつだから)」あたりがメリットかなあと思います。「丁寧に作ってはいけない」わけです(もちろん異論はいろいろあると思います)。ティンカリングティンカリング(tinkering)は、「遊び心」「いじくり回す」という意味があるそうです。いろんなものを作っては壊し作っては壊し...と繰り返すうちに、だんだん手先が器用になって、もの作りの腕が上達していきます。~「創造」と「破壊」を繰り返す遊びが「ティンカリング」です。Books)”]「ティンカリング」とは、家財道具を修理してまわった流しの修理屋(ティンカー)を語源に持つ言葉で、さまざまな素材や道具、機械を「いじくりまわす」こと。デザインセンスや問題解決の力を高めることができる手法として近年注目されています。TINKERING(ティンカリング)という概念。MIYALOG大人になるほど「こわす」ということを恐れるこの「プロトタイプをつくることが大切」だと言われる現代に必要とされる能力の一つが「つくったものをこわす能力」です。子どもの頃に、毎日砂場にお城をつくっては蹴り飛ばして帰っていたあの頃。砂のお城にしてもレゴブロックにしても、つくってはこわしてのサイクルを繰り返す中で遊び方や作り方をマスターし、レベルアップしていきましたよね。これが大人になると、一度作ったものを大切にしようとします。そこにかけるお金や時間が違うというのもありますが、企業のコンテンツだって子どもの頃につくったお城と同じ。つくってこわしてを繰り返すことで次のステージに進むことができるというわけです。「TINKERING(ティンカリング)」、いじくりまわして、つくってはこわして。イノベーションが必要とされる今の世の中では、いちはやく触れて、実際にやってみて、遊び尽くす。いうスタンスが重要なようです。子どもの頃は、変化を恐れない。今あるものを壊して、新しいものを作れる。大人になると、変化を恐れる。今あるものを壊せず、新しいものが作れない。プロトタイプを「雑に作る」のは、「ティンカリング」の考え方が背景にあるようです。メイキング、ティンカリング、エンジニアリング・ティンカリング直接経験、実験、そして発見を通して問題に近付き、解決を図っていく、遊び心にあふれた心構えです。学習のためのマインドセット「ブリコルール」[bricoleur:フランス語でティンカリングをする人のこと]とは、「画家に似て、一描きと次の一描きの間にキャンバスから離れて眺め、しばしの熟考を経てから、次に何をすべきかを決める」ような人です(タークル&パパート、1991)。身のまわりの材料を使いこなしたときに、たくさんのすばらしい経験が訪れます。身のまわりのものを使ってティンカリングを行い、プロトタイプを作り、フィードバックをもらう。それを繰り返して改造していき、新しいアイデアを生み出すのです。何度も何度も、目の前の状況、次に起こる新しい状況に適応していくのです。導かれて、やり方のわからない事柄に挑戦することです。ティンカリングに説明書はありません。正しいやり方や間違ったやり方はなく、失敗もありません。それは物の仕組みを理解することと手を加えて作り直すことに関係しています。複数の機械、珍しい仕掛け、不揃いな物体が調和しながら機能することがティンカリングの真髄であり、その基本は遊びと調べごとを結びつけるプロセスといえます。ティンカリングを通じて、プログラミングの仕組みを理解し、プロトタイプの作り直し(修正)がうまくなっていきます。プロトタイピングによって、遊び(ティンカリング)と調べごと(学習)が、同時に行えます。プロトタイピングは気軽に始めてOKまとめJavaScript学習は、リラックスして適当にやりましょう!(笑)1回で完璧なプログラムを作ろうと意気込むのではなく、何度も部品(コード断片)や試作品を作って、改良できるようになりたいです。engineer-log.net関連記事CSSセレクターとは?JavaScript学習で、「CSSセレクター」という用語がたまに出てきます。CSSセレクターについてまとめておきます。Sheets、カスケーディング・スタイル・シート)とは、ウェブページのスタイルを指定するための言語です。CSSは、HTMLと組み合わせて使用する言語です。HTMLがウェブページ内の各要素の意味や情報構...記事を読むプログラミング学習で擬似コードを活用しよう!JavaScript学習に役立つお話がありました。「擬似コード」でロジックを書き出す練習について紹介されています。JavaScriptに限らず、プログラミングの基本を学んだら何か動くモノ(プライベートプロジェクト)を作ってみたくなります。現実には、プロジェクトは完璧なコードをガンガン書くことではなく、たくさんの試行錯誤とリファレンスを幾度も参照して少しずつできあがるものなのです。アプリ作成の進め方として、以下の手順が紹介されています。Interface)とは?JavaScript学習で、ときどき「API」という用語が出てきます。APIについてまとめておきます。Model)とは?JavaScript学習で、「DOM」という用語がよく出てきます。DOMについてまとめておきます。DOM...記事を読むJavaScriptはプロトタイプベースのオブジェクト指向プログラミング言語ではない!?先日のブログ記事に、たくさんのブックマークをいただきました。ブックマークのコメントで、こんな意見がありました。うへええええ継承による差分プログラミングとか現代に言わないでくれよ。JavaScriptはプロトタイプベー...記事を読むJavaScriptで継承を使わないプログラミングスタイルJavaScriptでは「継承による差分プログラミング」はモダンではない、という意見がありました。うへええええ継承による差分プログラミングとか現代に言わないでくれよ。JavaScrip...記事を読むWebpackerを使ったRailsでのJavaScript開発こんにちは。マーケティングプロダクト開発部の長田です。この記事では、私が現在進めているプロジェクトで、Webpackerを使ったJavaScriptのモジュール管理を導入したので、それについて紹介したいと思います。organizationで開発されているgemです。これまで、Rails上でJavaScriptのパッケージをどのように管理するか、また、モジュール依存をどのように解決するかについて、多くの選択肢があり、それらをど...記事を読むリファクタリング=読みやすいプログラムを書こう!JavaScript学習に役立つお話がありました。「リファクタリング」でプログラムを改善する練習について紹介されています。(前回に引き続き、今回もこのお話から学んでみたいと思います。アプリ作成の進め方として、以下の手順が紹介されています。Macには、操作を自動化できるAppleScriptという道具が用意されています。このAppleScriptの代わりに、JavaScriptも使えるようになっていました。AppleScriptの代わりにJavaScriptを使えるようになってました。Yosemiteからの新機能だそうです。JXAとも呼ばれています。