「プロトタイプ」を含む日記 RSS

はてなキーワード: プロトタイプとは

2018-11-09

”今後必要になる〜”の著者がうちの派遣おっさんだった

かなり興奮しているし酔っているので要領を得ないかも。

今日急にうちに派遣で来てるおっさんに飲みに誘われて、会社の近くの安い居酒屋につれていかれた。

なんで誘われたかというとこれもうまく言えないのだが、チームや全体での飲み会で近くにいることが多く、不幸なことに自分が少し聞き上手だからかもしれない。

とにかく席についてビールが来ないうちに、人をばかにしたような半笑いで話を切り出された。

おっさんが持っている10年も前にあったようなガラケーメモ帳画面を見せられ、君になら理解できるだろうとかクィータとかいサイトにはろくな人材がいないとかブツブツ言っていて、俺はメモの中身を読み進めているうちに顔が引きつっていくのがわかってなぜか記事自体よりもそのことで笑いが止まらなくなりそうなった。

しばらく自分はどうすればいいのか知らないふりをするべきか、なだめたほうがいいのかまじでわからなかったのだが、結局記事の本意を聞きたい好奇心には打ち勝てなかった。

ちなみに自分仕事場ではWinXPが現役で動いている。派遣おっさんも含め会社がそういうカラーだと言えば伝わるだろうか。

自分趣味でReact(ないしReactNative) とかで家計簿アプリを作っているし、Androidも(それこそJavaでだが)やっていてちょっと新しい技術は知っているというレベルである

・「マスター言語」について

端的に言うと「必修」という意味で使ったらしい。ルー大柴かおまえは。いや意味が通ってないしルーに失礼か。

JavaJavascriptが同列になっている点について

どうやらプロトタイプベースオブジェクト志向という意味をはきちがえている。

まりJavascriptはオブジェクト指向言語プロトタイプとして生まれ言語であり、完全オブジェクト指向言語(これも意味がわからなかった)のJavaとは切っても切り離せない関係であると思っているらしい。もう自分はここらへんから笑いが変な声で漏れる笑いを堪えられなくなっていて、喘息気味なんですとかアホな言い訳必死ごまかそうとしていたんだけれど、この派遣おっさんに対してそこまで気を使っている自分にも笑いが止まらなくなってまあなんというか、おもしろかった。

RubyJavaサブルーチンとは

Rubyが(というかRORが?)動作が遅いという話をどこかで読んだか聞いたかしたらしく、そして動作が遅いかわりに処理がしっかりしている(現文ママ)という位置付けの言語だと思っているらしい。正確性が必要な処理はサブルーチンにしたRubyに投げるべきだとかなんとか。

パッセンジャーよりもエンジンクスにひもづけるべき(現文ママ)とか言っててもうビールがまずくて仕方ない。

MSDN

自分MSDN学生時代にVisualC++とかで使ったことがあって、デスクトップアプリ用のライブラリだとずっと思ってたんだけど、違うんですかね。(無知

MSDM(何度聞いてもエムにしか聞こえない)の逆アセンブリ言語C++だとか、ここの話は輪をかけて本当に何言ってるのかわからなかった。

ねこのことを考えて耐えた。

SQL

あんま深く考えてなかったらしい。言語名前がついているか言語のくくりに入れた、くらいのスタンス

ちなみになぜか、使ったこともないらしいSQLiteで配列型を使えないことは知っていた。

と、ひと通り聞きたかたことを聞いた後、もうなんか疲れ果てたのでビールを半分残して帰った。

よほど調子が悪く見えたらしく、おっさんはひどく自分のことを心配してくれた。ごめんおっさん

2018-10-31

増田プログラマー養成講座 その14 Webアプリの試作品作成

前回は、SQL文法を学びました。

今回は、データベースを使ったWebアプリ制作を通じて、SQLの使い方を確認してみましょう。

 

Webアプリとは?

WebブラウザーGoogle Chromeなど)で動作するアプリのこと。

ウェブアプリケーションWeb application)は、インターネット(もしくはイントラネット)などのネットワークを介して使用するアプリケーションソフトウェアである

多くの場合、これらのアプリケーションは、Webブラウザ上で動作するプログラミング言語(たとえばJavaScript)によるプログラムWebサーバ側のプログラム協調することによって動作し、ユーザはそれをWebブラウザ上で使用する。

 

準備

Windowsパソコンを使ってたら、「XAMPP」を使ってすぐにWebアプリを試作できる。

以前の講座(その6、その9)を参考にして、XAMPPCodeIgniterを用意しておこう。

 

Webアプリ制作の流れ

最近アプリの作り方は、「デザインスプリント」と呼ばれる方法流行ってます。本やネット情報がたくさんあるので調べてみよう。

 

ざっくりと、以下のような流れです。

  1. アイデア企画)を出す。
  2. アイデアを基に、ペーパープロトタイプ(紙の試作品)を作る。=アナログの試作品ノートなどにアプリの完成予想図、画面などを描く。
  3. ペーパープロトタイプを基に、動くモック(ハリボテ)を作る。=デジタルの試作品
  4. モック画面を基に、実際のプログラム作成して、アプリを完成させる。
  5. 完成したアプリを改良していく。

それでは順番にやってみよう。

 

アイデア

以前にデータベース練習をしたとき、「後で簡単チャット(おしゃべり)ができるWebアプリ作ってみたいと思う。」と言ったので、今回のアイデアは「チャットを作る」にしよう。

 

ペーパープロトタイプ

チャット必要な画面は3つある。

  1. トップページの画面(新規投稿投稿一覧がある)
  2. 投稿更新する画面
  3. 投稿を削除する画面

ノートなどに描いて画面をデザインしてみよう。

 

モック

Webページを作るには、HTMLCSS知識必要だ。HTMLCSSを使ったことがなければ、本やネット情報勉強してみよう。

今回はCSSを使わずに、HTMLだけでシンプルWebページを作ってみよう。(練習から余計なもの無駄を省きたい。)

 

Webページ制作ツール

ブラウザーテキストエディター(またはIDE)が必要です。

特にこだわりがなければ、Microsoftの「Visual Studio Code」という無料IDE統合開発環境)を使ってみよう。

インストール方法や使い方、メニュー日本語化のやり方は、検索して調べてみよう。

 

フォルダを作る。

デスクトップに「mock」というフォルダを作る。

 

ファイルを作る。

「mock」フォルダの中に

  1. index.html」 (トップページの画面)
  2. 「edit.html」 (投稿更新する画面)
  3. delete.html」(投稿を削除する画面)

という3つのファイルを作る。

テキストエディターで保存するとき文字コードを「UTF-8」にしておく。

 

ファイルの中身を編集する。

index.htmlファイルエディターやIDEで開き、以下のような内容に編集して保存します。(コピペする場合、行頭の字下げ(インデント)の全角スペースを半角スペースに置換して下さい。)

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>新規投稿</h2>

  <form>

   <label>メッセージ</label>

   <input type="text" name="message">

   <button>投稿する</button>

  </form>

  <h2>投稿一覧</h2>

  <table border="1" cellpadding="5" cellspacing="0" bordercolor="#CCCCFF">

   <tr>

    <th>No.</th>

    <th>投稿日時</th>

    <th>メッセージ</th>

    <th>編集</th>

    <th>削除</th>

   </tr>

   <tr>

    <td>3</td>

    <td>2018-10-20 12:34:56</td>

    <td>Webアプリを作ってみる!</td>

    <td><a href="edit.html">編集</a></td>

    <td><a href="delete.html">削除</a></td>

   </tr>

   <tr>

    <td>2</td>

    <td>2018-09-10 22:33:44</td>

    <td>今日からプログラミングを勉強します。</td>

    <td>編集</td>

    <td>削除</td>

   </tr>

   <tr>

    <td>1</td>

    <td>2018-08-01 11:22:33</td>

    <td>こんにちは!</td>

    <td>編集</td>

    <td>削除</td>

   </tr>

  </table>

 </body>

</html>

 

「edit.htmlファイルエディターやIDEで開き、以下のような内容に編集して保存します。(コピペする場合、行頭の字下げ(インデント)の全角スペースを半角スペースに置換して下さい。)

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>編集</h2>

  <p>メッセージを変更して「更新する」ボタンを押してください。</p>

  <form>

   <label>メッセージ</label>

   <input type="text" name="message" value="Webアプリを作ってみる!">

   <button>更新する</button>

  </form>

  <p><a href="index.html">戻る</a></p>

 </body>

</html>

 

delete.htmlファイルエディターやIDEで開き、以下のような内容に編集して保存します。(コピペする場合、行頭の字下げ(インデント)の全角スペースを半角スペースに置換して下さい。)

<!DOCTYPE html>

<html>

 <head>

  <meta charset="utf-8">

  <title>増田チャット</title>

 </head>

 <body>

  <h1>増田チャット</h1>

  <h2>削除</h2>

  <p>以下のメッセージを削除しますか?</p>

  <form>

   <p style="background-color:lightpink">Webアプリを作ってみる!</p>

   <button>削除する</button>

  </form>

  <p><a href="index.html">戻る</a></p>

 </body>

</html>

 

以上でモックWebページ(HTMLファイル)ができました。

Webブラウザーで「index.html」を開いてください。「編集」や「削除」、「戻る」をクリックして、チャットの画面を確認してください。

 

モックを作ってからWebサイトを作る方法

実務では「仕様書」という書類を大量に作る場合もありますが、時間と労力の無駄になっている場合が多々あります。(紙の仕様書はあまり使われる機会がない)

紙の仕様書アナログ)の代わりに、モック仕様書デジタル)として使うと、その後の段階がスムーズになります

どうしても紙でなければ困る場合以外は、モックをそのまま仕様書として使ってみましょう。

 

プロトタイプ作成ツール

モック(動くハリボテ)を作るための便利なツールがいろいろあります

 

 

 

ちょっと長くなったので、モックを基に機能実装プログラミング)するのは次回にしましょう。

 


anond:20181015215004 未経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミングの練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう

anond:20181023184616 増田プログラマー養成講座 その10 OOP参考書

anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう

anond:20181026145516 増田プログラマー養成講座 その12 データベース参考書

anond:20181028152656 増田プログラマー養成講座 その13 SQL文法

anond:20181031014212 増田プログラマー養成講座 その14 Webアプリの試作品作成 ←★今ここ★

anond:20181101225335 増田プログラマー養成講座 その15 Webアプリの完成見本

anond:20181024214737 増田プログラマー養成講座 コンテンツ一覧

2018-10-19

増田プログラマー養成講座 その7 OOPの仕組み(前半)

前回は「オブジェクトとは何か?」を説明した。

今回はオブジェクトの使い方=オブジェクト指向プログラミングOOP)で用意されている仕組みを見てみよう。

とりあえずPHPで仕組みを学習してみよう。(PHPJavaより簡単なので理解やすい)

OOPでは用語概念がたくさん出てくるので、まずは用語意味を押さえよう。(英単語ばっかだね。日本語にして欲しいね。)

 

注意点:文字化けエスケープ)について (修正済)

以下の説明で、半角文字の「>」(不等号の記号)が「&gt;」という表示に変わってしまっている。

「-&gt;」となってるところは「->」(>は本来は半角文字)なので、読み替えてください。

 

ドットインストールPHP入門でOOP学習

 

元増田は、もう一通り全部見てくれたかな?

OK、それじゃOOP関係してる#18から#24を一緒に見てみよう!

 

#18 クラスインスタンス理解しよう

動画でこんな用語が出て来た。

 

 

クラスとは?=オブジェクト定義

クラスベースOOPJavaPHPなど)は、オブジェクトを作るときに、「クラス」という仕組みで用意する。

プロトタイプベースOOPJavaScriptでは、「プロトタイプ」という仕組みで用意できる。=別の機会に使ってみよう)

 

クラスベースOOPで「オブジェクト」と言った場合クラスインスタンスの両方を指し示すことができる。

 

 

クラスメンバー

クラスには「プロパティー」(データ)と「メソッド」(処理)を入れられる。

も作れる。

クラスの中に入っている「プロパティー」や「メソッド」のことをまとめて「メンバー」と呼ぶ。

からメンバーってのは、クラス構成員だね。プロパティーやメソッドメンバーになれる。

 

// クラスオブジェクト設計図オブジェクトデータと処理をまとめて入れられる箱。

class クラス名 {

 // プロパティー(データ)の部分

 public $name = ''; // 名前 // ※「public」の使い方は後で説明

 public $age = ''; // 年齢

 // メソッド(処理)の部分

 public function get_name() { // 名前を取得する

  return $this->name; // ※「this」の使い方は後で説明

 }

 public function set_name($new_name) { // 名前を設定する

  $this->name = $new_name;

 }

}

 

コンストラクター

コンストラクター」は特別メソッドで、クラスからインスタンスが作られるときに、自動的に呼び出される。

コンストラクターを使えば、インスタンスを作るとき自動的に実行しておきたい処理(下準備=初期化とか)をやらせられる。

class User {

 // プロパティー(データ)の部分

 public $name = '';

 public $age = '';

 // コンストラクタークラスからインスタンスを作る(new)とき自動的に実行される特別メソッド

 public function __construct($name, $age) { // PHPコンストラクター名は「__construct」と書く。

  $this->name = $name;

  $this->age = $age;

 }

 // メソッド(処理)の部分

 public function get_name() {

  return $this->name;

 }

 public function set_name($new_name) {

  $this->name = $new_name;

 }

}

 

デストラクター

説明には出てこなかったけど、コンストラクターと反対に、デストラクターという仕組みもある。

 

インスタンス

インスタンスクラスオブジェクト設計図から作ったオブジェクトの(具体的な)実体のこと。

インスタンスは「new」で作る。

$taro = new User('taro', 20); // name='taro', age=20コンストラクターでセットしたい。

これで「太郎」(顧客の1人)という具体的なインスタンスが、User利用者クラスから作られた。

太郎($taro)というインスタンスを作った後は、これで太郎に関するいろいろな操作ができるようになる。

 

アロー演算子

インスタンス太郎」の中にあるメンバープロパティーやメソッド)を使いたい場合アロー演算子「->」(矢印)で指定する。

 

echo $taro->name; // 太郎nameを表示せよ

$taro->name = 'yamada taro'; // 太郎nameを「yamada taro」にせよ

$taro->set_name('タロウ'); // 太郎のset_nameメソッドで「タロウ」という名前を設定せよ

等という操作ができる。

 

#20 クラス継承してみよう | PHP入門

動画でこんな用語が出て来た。

 

 

extends(継承

OOPでは、あるクラスオブジェクト設計図から、別のクラスを作りだすことができる。これを「継承」と言う。

 

// 元にするクラス

class User {

 // プロパティ

 public $name;

 public $age;

 // メソッド

 public function hello() {

  echo "Hello, " . $this->name;

 }

}

// 継承して新しく作るクラス

class Special_user extends User {

 // プロパティ

 public $point; // 特別会員のポイント

 // メソッド

 public function your_point() {

  echo "あなたポイントは".$this->point."点集まりました。";

 }

}

 

上記の例だと、基になった「User」が親クラスUser継承して新たに作った「Special_user」が子クラスとなる。

 

オーバーライド

オーバーライドとは「上書き」という意味

継承して新しい子クラスを作るとき、親クラスにあるメソッド機能を一部改造したい場合がある。そんなときは上書きして、中身を入れ替えることができる。

オーバーライド簡単で、単に同じ名前メソッドを用意すればいいだけ。新たに用意したメソッドで中身が上書きされる。

 

// 元にするクラス

class User {

 // プロパティ

 public $name;

 public $age;

 // メソッド

 public function hello() {

  echo "Hello, " . $this->name;

 }

}

// 継承して新しく作るクラス

class Special_user extends User {

 // プロパティ

 public $point; // 特別会員のポイント

 // メソッド

 public function your_point() {

  echo "あなたポイントは".$this->point."点集まりました。";

 }

 // 親クラスにあったメソッドと同名のメソッドを用意すれば、上書きして中身を変更できる。

 public function hello() {

  echo "こんにちは、".$this->name."様";

 }

}

 

final

オーバーライドして中身を変更されてしまうと困るメソッドがあった場合オーバーライドできないように設定しておくこともできる。

その場合は、メソッド名の前に「final」と書いておけば、最終的な決定形となり、オーバーライドで中身を変更できなくなる。

その他、finalの使い方はマニュアルも参考にしてください。

 

#21 アクセス権について理解しよう

OOPでは「カプセル化」といって、オブジェクトの中にあるメンバープロパティーやメソッド)を外から見えない(操作できない)ようにすることができる。

 

隣の家の窓を想像して欲しい。

カーテンによって、3段階で覗けるようになっている。これと同様のことがオブジェクトメンバーにも設定できる。

 

メンバーアクセス権を設定してやれば、オブジェクトの外からの見え方を設定できる。

 

大雑把に言えば、オブジェクトカプセル化プロパティー(オブジェクトの「状態」)は見えなくして、メソッドオブジェクトの「操作」)は見えるようにしてやれば、だいたいうまく使えます

これは「副作用(予期せぬ変化)の隠蔽化」といって、「オブジェクトの中身を外部から守る」という考え方です。

アクセサー」(ゲッターセッター)という「オブジェクト操作用のメソッド」を用意してあげて、中身の操作制限を加える方法があります

 

区切り

まずは、ここまでの内容をドットインストールサンプルコードなどを実際に動かしてみて、仕組みをよく理解するようにしてください。

#22から#24は、今の段階では「こんな機能も用意されているのか。へー」ぐらいでもOKだと思います

 

多分、素朴な疑問として、「OOPのために、こんな仕組みが用意されているのは分かったけど、何が便利なんだろ?」と訝しく見えるだろうと思います

OOP基本的文法機能を知った後、実際にOOPを使ってみる演習をやってみれば、使いどころや便利さが分かるようになると思います

次回は、残りの#22から#24までの説明を見てみましょう。

 


anond:20181015215004 未経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半) ←★今ここ★

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう

anond:20181023184616 増田プログラマー養成講座 その10 OOP参考書

anond:20181024214737 増田プログラマー養成講座 コンテンツ一覧

2018-10-17

増田プログラマー養成講座 その6 OOPの種類、PHPの準備

前回は、オブジェクト説明をした。

今回は、オブジェクトの使い方=オブジェクト指向プログラミングOOP)を学ぼう。

 

OOPの種類

オブジェクト指向プログラミングには、

  1. クラスベースJavaC++など)
  2. プロトタイプベースJavaScript、Ioなど)

などの分類があります

ここではクラスベースOOPを取り上げる。学習時間を短縮するために、Javaよりも簡単PHPOOPの基本を勉強してみよう。

 

PHPとは?

PHP (プログラミング言語) - Webページ作成のために用いられることの多い汎用プログラミング言語一種

PHPは誰でも手軽に使えるように工夫された、軽量なプログラム言語です。

 

PHPの準備

WindowsパソコンPHPを使うために、XAMPPというソフト無料)をインストールしよう。

 

XAMPPはいくつかバージョンがあるけど、ここではUSBメモリに保存できる「ポータブル」を使ってみよう。

↑このページにある「xampp-portable-win32-7.2.10-0-VC15.zip」をダウンロードして、ZIPファイルを展開します。

解凍して出てきた「xampp」をCドライブ直下コピーしてください。

これでPHPの実行環境XAMPP)の準備は完了です。

 

XAMPPの起動

Port(s)が「80,443」と表示されたら、XAMPP上のApacheWebサーバーソフト)が起動して、PHPが使える状態になってます

Apacheを止めるときは、「Stop」ボタンクリックします。)

 

PHPスクリプト作成

phpとは - はてなキーワード http://d.hatena.ne.jp/keyword/php

↓こんなかんじのサンプルコードがあるよね。

<?php

print("Hello, world!");

?>

プログラムソースコード増田に直接書くと、エスケープされて違う文字になるので、上の例では一部文字を置き換えてある。)

上記の表示の中で、全角文字の不等号「<」「>」を半角文字の不等号に置き換えて下さい。)

増田プログラムコード貼付けられないのか。不便だな!)

以上で、PHPプログラミングの準備と動作確認ができた。

 

PHPの基本文法

PHPの教材は、本やネット上の記事動画などたくさんある。自分で分かりやすものを探して読んでみよう。

ここではドットインストールPHP入門を参考にしてみよう。

 

3分程度の動画が30個=90分。最初は内容を理解できなくてもいいから、とりあえず全部一通り見てみよう。(1巡目は雰囲気だけつかめOK

 

「つまづきノート」の作成

2巡目以降は分からないことがあったらノート等にメモして、後で1つずつ解明していこう。

著者あとがき

 

私はGitを学ぶのに、実はとても苦労しました。それと同時に、「きっと同じように困っている人が他にもたくさんいるはずだ」と考えました。「理解するのに数日かかることを、短い時間でパパッと学べるコンテンツを作りたい」そう思いつき、「マンガでわかるGit 第1話」個人サイトにて公開したところ、いきなり、はてなブックマークで800ブックマークされました。

 

“つまづきポイント”を先回りするために

私は、Gitを使い始めて以降、わからないことがあったら「つまづいたこノート」に書いてきました。なお、本書の執筆にあたっても、日々勉強しながら解説を書くという形でした。わかばちゃんが「なんでこうなるの?」と疑問に思う部分は、私が過去につまづいた部分です。

 

ドットインストール PHP入門
(1) PHP利用の準備

 

(2) 構造プログラミングの基礎知識

 

(3) オブジェクト指向プログラミングの基礎知識

 

(4) その他、Webサイト作成一般的知識

 

(今回は、PHPの準備、PHPの基本文法理解までで終わってしまったorz

URLリンク10個以上貼ると、日記が書き込めないみたいなので、増田では記事を分割せざるを得ない。)

次回は、OOP関係している内容(#18~#24)を一緒に確認してみよう。

 


anond:20181015215004 未経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備 ←★今ここ★

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう

anond:20181023184616 増田プログラマー養成講座 その10 OOP参考書

anond:20181024214737 増田プログラマー養成講座 コンテンツ一覧

2018-09-23

プログラマー仕事って

仕様書も無いところから「ここはどう作る?どんな機能にする?」とか話し合いながら、時にはプロトタイプも作ったりして

英文ドキュメントぐらいは普通に読めないといけないし、なんならeメールSlackなどで問い合わせの英文やり取りぐらいはできなきゃだし

複数プログラミング言語をある程度扱えるのは当然で、フレームワークも分かっていなきゃいけないし、わからない箇所は適宜調べるスキル必要

考えてみるとわりと高度なんだけどこれで時給換算で5000円弱ぐらいしかいただけていないのは何だかなあと思う次第

2018-09-19

G社にいたので語ってみる

退職エントリ話題になったので、ちょっと感想解説を書いてみる

自分がいたのはほぼ創業期、10人以下でやってたシード期。プロダクトのプロトタイプを作って、投資家に見せてお金を勝ち取る時期。

社名もまだG社ではなくV社でした。

今の状況はあまり知らないので、関わっていた当時の様子から類推したりするので、不正確なところはあります

これを書くと、誰なのかは中の人にはほぼ分かってしまうけど、やめちゃった今でも応援してます的な立場で書きます

スタートアップとは

そもそもスタートアップ企業に勤めたことのある人間はてなにどれくらいいるのでしょうか? スタートアップってどういうものなのか分かっていますか?

スタートアップとは、

「今まで世の中にないものを、どうすれば価値が認められるようになるか仮説検証を繰り返し、急激に成長を狙う集団

だと私の中では思っています。急激に成長するためには、今まで誰も作ったことのないプロダクトを開発し、投資家からじゃぶじゃぶ廃課金してもらい、お金が尽きる前にプロダクトを世に出す必要があります

労働環境について

初期のスタートアップは、労働基準法?なにそれ?状態だと思います。当時も、何日も家に帰らず開発に明け暮れるメンバーがいました。

それも当然かと思います投資家に言われた課題を期日までにクリアし、企業として生き延びるために、「できませんでした」ではすみません

スタートアップとは、「急激な成長」or「死」なのですから

それ以上に、みんな熱狂的に働いていたと思います。「○億の投資が決まった!」「ラブプラスの箕星先生キャラデザ担当してくれる!」といったスゴイ話が飛んできてスタートアップとしての成長を喜び合ったり、「キャラクターと一緒に暮らす」というビジョンを実現したい、一発当てたいなどなど、普通企業にいては経験できないことがたくさんありました。

最初期のシード期は仕方のないことかもしれませんが、そこを生き延び、ベンチャーキャピタルから投資を受け、プロダクトを製造するまでに至ったら、企業として労働環境を整えて従業員を増やしていかなくてはいけません。以前は長時間労働状態化しているメンバーもいましたが、会社が大きくなるにつれてそういう働き方は改善していくべきという考えをもっていました。当時でも、労働者労働時間管理はきちんとしていましたし、スタートアップとはいえ働き方を改善していってると思うのですが、この人はそれに反して長時間労働をしていました。

退職エントリの人は、今だに600時間という過労死しそうなラインで働いており、正社員として雇い続けられないというのは、G社の方針が正しいと思えました。

ここから想像なのですが、雇用された労働者ではない経営側のコアメンバーがまだ長時間労働をしており、その企業文化に影響されて一生懸命働いてしまったのではないでしょうか? 働けとは言われていないが、他の人も働いてるし、楽しくて夢中で働きすぎたことが考えられます

当時の僕は、IT企業に勤めながら、プライベートしかも無給でお手伝いしていた立場でした。プロダクトが圧倒的に面白く、ビジョン共感できたし、お金にも困っておらず、スタートアップ経験を積みたかったので、こういう立場でした。

他のメンバーもやはり、ビジョンに深く共感し、プロダクトを作り上げたいという強い思いを持ったメンバーばかりでした。

ガチ天才高校生プログラマーやフリーランスの人もいました。毎日生きるか死ぬかのギリギリ感と、すごいプロダクトを作ってやる!というやる気で、高揚感がすごかったです。ビジョンプロダクト、スタートアップという特性上、とても熱狂的な集団だったと思います

自分終電12時ごろ帰るのですが、他のメンバーは帰る様子もなく、いつも自分最初に帰る感じでしたが、

自分だけ早く帰ることに若干の罪悪感はありました。

こうした環境フルタイムで働いていたら、自分も同じような働き方になっていたかもしれません。

能力査定について

この人がどれくらい能力があったのかは全然からないのですが、会社としては能力があるかどうかはドライ判断していたと思います

そもそもスタートアップは優秀な人じゃないと入れません。そしてビジョン共感していて、若くて体力があり、長時間労働できる人。

もともとWEBサイトアプリは、とても優秀なスーパー高校生担当してましたが、彼と比べられるとよっぽど優秀な人じゃない限り切られてしまうんじゃないかなぁと思いました。

まとめ

個人的憶測としては、そこそこの能力の人がコアメンバー労働環境に影響されて長時間労働してしまい、業務委託になった結果切られてしまったのかなぁと。

ビジョン共感していても能力がないとスタートアップではやっていけない、厳しい環境が背景にありそうです。

やりがい搾取」という言葉が出てきそうですが、それだけスタートアップとは麻薬のように刺激的で熱狂してしまものなのです。

最初期に関わっていたメンバーは、この経験を元に会社を立ち上げている人が何人かいますスタートアップ普通の人にはおすすめしませんが、好きを仕事にしたい人、起業したい人にとってはい場所だと思います(ただし優秀であること)

2018-09-18

anond:20180918212424

作ったるから研究費くれ。100万くらいくれたら身長130cmのプロトタイプ作る。

2018-09-07

python pandas でのソフトウェア開発

複数データを読み取り pandas で加工して excel に出力する、ということをしている。

pandas だとテストが書きにくいと思い、jupyter を使いながら普通python コード(a.py とする)を開発している。

以下のようなサイクルで開発を行なっている。a.py でクラス関数をある程度書いたらjupyter にimport して挙動確認し、間違っていたら jupyter でプロトタイプ的なコードを作り a.py に変更を加える。その後、jupyter のプロトタイプ的なコードは消して、jupyter をリスタートし上手くいっていることを確認する。そして、また次の機能確認に移る。

メリットは、

・pandas の挙動確認できる

問題としては、

・jupyter で最初からリスタートすると 5 秒くらいかかり、遅いなと思う。

・jupyter ってそもそも開発するのに向いていないのではないか、と思う。自分が慣れてないだけかもしれない。

何か良い知見があれば教えて下さい。

追記

id:houyhnhm

クラス関数定義し直すときは、どんどん下に新たな定義を書いていくってことですか?一手間へるけど行数は増えそう。あとは、グローバル変数がめちゃくちゃ増えるから管理に注意しないといけなさそうですね。

2018-08-13

anond:20180813202635

アイデアでも実現可能性が無かったらただの思いつきやから

Webサービスなんてパクりパクられの世界なんやから、逆に金もかけずにプロトタイプ作ったくらいの気持ちいいんじゃないかい

2018-07-26

anond:20180726125719

プロトタイプ作って改良し続けられる奴だけが構築できるんだ

2018-07-02

anond:20180621115939

今年、院を卒業してメーカー勤務になったけど環境全然違うね。残業はさせないし、儲からない研究は一切やらない。分析担当部署に回すし、プロトタイプから実機になると

担当が変わることも少なくない。研究室よりはるかに楽なのに給料でるのが申し訳ないぐらいで、不満はほぼない。

研究室のときストレスやばくて、修了した後の今でも「大学やめたい・・・」が口癖なんだ。

でも、自分で考えて測定したり、装置の改良したり、論文読んだり、同期とディスカスしたり、この研究のどこが面白いのか考えられるのは楽しいことだったなぁって思うよ。

まぁ二度と研究生活には戻りたくないけど。

2018-06-24

そろそろ「電脳コイル」で出て来たみたいな、スマートグラスのプロトタイプくらい出ないのかな。

ベリオみたいに現実風景関係なく看板みたいなのがポヨンと出てるだけ、みたいなのじゃなくて、

仮想の立体物が、ちゃん現実風景に沿って動いてくれたりするやつ。

といっても、小さくてファッショナブルなのは、まだまだ技術的に難しいんでしょ。

VRヘッドセットくらいでかくても仕方ないから、実物を見てみたい。

せめてアプリ開発者に対しては公開して、今のうちにアプリ作ってもらえばいいのに。

今この分野で先行してるのはアップルかな。デバイスの形状はまだ「スマホ」だけど。

Google Glassは前に頑張ってたけど一旦コケて、今立ち直り中か。

Magic Leapというのが、開発者には既に販売されたという噂があるけど、なぜか「噂」止まりなんだけど

やっぱ実際にはまだ・・・って事なのかな。

2018-05-25

anond:20180525174142

504 Gateway Time-out 連発

ダメだ。

サーバーをチューンナップしないといけない。

NginxMySQL、…課題が多い。

もっと金をかけて、サーバーハイスペックにすれば、力技でも解決するだろう。

まだプロトタイプなので、マネタイズできていない。今はまだ金をかけたくない。

 

サーバーの負荷を監視して、ボトルネックを探ることが先決だ。

札束解決するのは、その後だ。

静的サイトジェネレーター、CDN、DDoS対策、…俺がやりたいのは、こんな道草じゃない。(全部丸投げしたい)

ハァ~、困ったもんだぜ。全く!

2018-05-06

anond:20180506220106

会社に頼まれているわけではないのですか。

うーん……。

自助的なコミュニティに、混ざってみるといいかもしれませんね。

もくもく会」と言われる類の会には、詳しい人に質問できるタイプの会があります

(本当にもくもく作業だけのものもありますので、要調査

ただ……。あまり事情踏み込むのも何ですが、増田がどこにゴールを置いているかちょっと心配になってきました。

作ったもの業務に組み込むとなると、どうしてもランニングコストが発生するので、会社を巻き込む必要が出てきます

会社から予算を分捕るためにプロトタイプを作っているんだ、とかでしたら、私の心配杞憂ですけれども。

2018-05-03

Engadgetが教えてくれたこ

あ、2004~2015年のEngadget本家の話な。

2018-04-09

心の原風景否定とは

LGBT気持ち悪い人に会ってみた

http://news.livedoor.com/article/detail/14539261/

数日前にプチ炎上してたこれ。

この中ですごくストンとき一言に「心の原風景」っていうのがあった。

要するに今になって保毛尾田保毛男を笑うことを社会的非難されると、自分がかつて子供の時に友達と一緒に大笑いしてきたことが罪であったかのように言われてそれにひどく傷つくという主張だ。

記事主題LGBTについてだけど、「心の原風景」で引き合いに出していることとして「女子の夏服から透けた下着」ということがある。

このインタビューを受けた人はきっと他にもエロ本を盗み見たり、同級生女子の胸の大きさを比べて批評したり、生理の日を予想したりとかそういったごく当たり前の男子中学生らしい日常を送ってきた人なんだろうと思う。

また今日になって突然にハリセンボン春菜お笑いを目指すルーツとして「小学生の時にブスと言われてそれを笑いに変えた」という話が再燃してきた。

これもまた一つの「心の原風景」なのではないかと思う。

ハリセンボンの側からしてみると、自分がおどけて見せたことで周囲が笑顔になったということが自分にとって大きな精神ターニングポイントになったのだろうが、おそらく当時の同級生たちは「ブス」とからかった同級生がそれを笑いに変えて、それを大笑いしたということもまた「心の原風景」になるのだろう。

自分はおとなしい陰キャ男子だったからそこまで「心の原風景」を否定されることに拒絶反応はないが、おそらく陽キャとしてプロトタイプバカ男子中学生時代を送ってきた人にとっては、その自分たちが共有してきた「笑い」が実は女性LGBTを傷つけることで成り立ってきたということを今更事実として突きつけられる罪悪勘は非常に不愉快ものなのだろうと思う。

だけど同時にその罪悪感に耐えられなくなるからいまさら罪扱いするなというのも自分勝手な主張なのではないかと思ったりもする。

中学生の時、気になっていた女子の持ち物を一つ盗んだことがある。

当時は悪いと思っていたけれども、ずっと持ち続けていて捨てられなかった。オナニーもした。

それも自分にとっては「心の原風景」だ。

の子が今どこで何をしているかは全く知らないが、こんな陰キャな自分にとっての心の原風景にされてしまたことを知ったら、おそらく気持ち悪いんだろうなと思ったりする。

2018-03-19

anond:20180319144043

プロトタイプなら量産できるのでは?

そこからさらに完成度の高いプロダクトを作り込むには、やはり月単位時間がかかるのは止むを得ないかも?

2018-03-15

架空デザイン限界

BoeingのMQ-25プロトタイプ写真が公開されてる。架空デザインって作ってみると渦のど真ん中に操縦翼面があって舵が全然効かなかったり、重心が狂っていたり、ステルス性が欠片もなかったりすることがあるよね。

でもそんなレベルじゃなかった。機体天面すり鉢状の穴があるの。それがエンジンインテイク。NorthropのTacit Blueアセトンで溶かしたような。

2018-03-14

プロトタイプに騙されていた

prottype

だと思ってたら

prototype

だった

まあ書いたこともタイプしたこともなかったのでイメージだけなんだが

なんとなくローマ字っぽくなることはないと思うじゃん

書く機会が発生する前に気付いてよかった

2018-03-10

anond:20180310143009

本当そうだよね。

プログラミングって、創造=最高に楽しい遊びなんだけど、それが分かってないやつが多過ぎw

テストなんてブッチ切りで、とにかくプロトタイプをがんがん作ればいい。

自分が欲しいものだけを毎日作っていればいい。

それがゲームならゲームでもいいし、DTMなら音楽毎日作ればいい。

なんで好きなこと楽しいことをやらないで、嫌いなこと苦しいことを選ぶのか不思議で仕方ない。

2018-02-03

Railsって、言うほど便利じゃない!?

愚痴系の増田を見て思う。本音を吐き出せる場所が他にないんだなーと。まあみんな似たり寄ったりの状況だとは思うけど。

 

そこで俺もここで吐き出したい。オエー!…じゃなかったw

Webサービス作るとき、遅いのですごい時間がかかってもどかしい

不完全なプロトタイプだけでも1日でサッサと形にしたい。

みんな、Railsで1日で作れるの?無理だよね?

は~、どうしよう。。。(ため息)

 

早く作るコツを求めて、失敗に向かって突き進む姿勢必要だと最近実感。

うだうだ言っても埒が明かないから、まあ手を動かすしかいか

でも、どこかで俺が知らない方法で、要領よくチャッチャと作っている人たちがいるような気がする。(隣の芝は青く見える!?

楽ができるインスタント方法いかなー?(ないよねー?)

2018-01-14

anond:20180114180633

classがあってprivateな変数メソッドがあるのがオブジェクト指向だと思ってる

クラスプロトタイプベースから無い。

ただES2015から糖衣構文としてClassは使えるようになった。

プライベート変数は今後実装される。プライベートメソッドは知らない。

まりES2015以降とそれ以前ではJavaScriptと言っても全く違う言語ってことだな。

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん