読者です 読者をやめる 読者になる 読者になる

新人SEの学習記録

14年度入社SEの学習記録用に始めたブログです。気づけば社会人3年目に突入。

学習記録

[C#] 環境構築

内容

Xamarinのダウンロードとインストール
HelloWorld (console)
  • New Solution -> C# -> コンソールプロジェクトで新規プロジェクト作成
    • Program.csファイルが出来る。内容は以下
using System;

namespace sample1
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			Console.WriteLine ("Hello World!");
		}
	}
}
HelloWorld (gtk#)
  • New Solution -> C# -> gtkプロジェクトで新規プロジェクト作成
    • Program.csとMainWindow.csが出来る。内容は以下
using System;
using Gtk;

namespace samplegtk
{
	class MainClass
	{
		public static void Main (string[] args)
		{
			Application.Init ();
			MainWindow win = new MainWindow ();
			win.Show ();
			Application.Run ();
		}
	}
}
    • MainWindow.csを開いてデザイナタブにするとこんな感じ

f:id:uriku:20140623201816p:plain

f:id:uriku:20140623203628p:plain

    • ここからコーディング開始…かと思いきや前述のブログの後編がまだ書いてなかったorz
    • まぁこんな感じでGUIが作れるということで…
Javaとの違い
  • プリミティブ型(値型と呼ばれる)
    • 符号無し整数(unsigned...)がある
    • エスケープ文字を処理しない文字列型(varbatim)がある
    • プリミティブ型で多態性が利用可能(42.toString()など)
    • 列挙型が組み込み整数ベース(Javaはオブジェクト)
  • メソッドはデフォルトが非仮想(非virtual、Javaはデフォが仮想)
  • 条件コンパイルがある
  • 関数を引数として渡せる(関数が第一級オブジェクト)
  • 名前空間とファイルの物理的な位置が無関係
  • 非チェック例外のみをサポート
  • 主なプラットフォームはWindows

[Ruby on Rails]

内容:4章 ビュー開発

フォーム関係のビューヘルパー
  • form_tag:汎用的なフォームを作成
    • FormTagヘルパー:_tag付きのヘルパー。label_tag, text_field_tagなど
    • Formヘルパー:_tag無しのヘルパー。label, text_fieldなど- form_for:特定のモデルに特価したフォームを作成
    • f.Formヘルパー:「f.」で呼び出すヘルパー。f.label, f.text_fieldなど
    • FormTagヘルパー:_tag付きのヘルパー。label_tag, text_field_tagなど
  • form_tag:汎用的なフォームを作成
    • rails generate controller view
    • vi app/views/view/keyword.html.erb
    • 基本的にはform_tagメソッドの配下ではFormTagヘルパーを利用する
<%= form_tag({ controller: :keyword, action: :search },
    id: :fm, class: :search) do %>
検索キーワード:
<%= text_field_tag :keywd, '', size: 30 %>
<%= submit_tag '検索' %>
<% end %>

f:id:uriku:20140623233531p:plain

  • モデル編集のためのフォームを生成
    • view_controller.rb
class ViewController < ApplicationController
  def form_tag
    @book = Book.new
  end
end
    • フォームタグを用いたモデル編集フォーム生成:view/form_tag.html.erb
<%= form_tag(action: :create) do %>
<div class="field">
  <%= label :book, :isbn %> <br>
  <%= text_field :book, :isbn, size: 25 %> <br>
</div>
<div class="field">
  <%= label :book, :title %> <br>
  <%= text_field :book, :title, size: 25 %> <br>
</div>
...
<% end %>

f:id:uriku:20140623233605p:plain

      • 非常に冗長、いちいちオブジェクト名(book)を書く必要
      • モデル編集フォームにはform_forメソッドを使うべき
    • form_forを用いたモデル編集フォーム生成:view/form_for.html.erb
<%= form_for(@book) do |f| %>
<div class="field">
  <%= f.label :isbn %> <br />
  <%= f.text_field :isbn, size: 25 %>
</div>
...
<div class="actions">
  <%= f.submit %>
<% end %>

f:id:uriku:20140623233626p:plain

  • input, textarea要素の生成
    • xx_field, text_area, radio_button, check_boxメソッド
    • field.html.erb
<%= form_for(@book) do |f| %>
  テキストボックス:
  <%= f.text_field :isbn, size: 20, maxlength: 25, readonly: true %><br />
  パスワードボックス:
  <%= f.password_field :isbn, size: 10, maxlength: 15, disabled: true %><br />
  テキストエリア:<br />
  <%= f.text_area :isbn, cols: 40, rows: 10 %><br />
  ラジオボタン:
  <label><%= f.radio_button :publish, '技術評論社', class: :rd %> 技術評論社</label>
  <label><%= f.radio_button :publish, '翔泳社', class: :rd %> 翔泳社</label>
  <label><%= f.radio_button :publish, 'マイナビ', class: :rd %> マイナビ</label><br />
  チェックボックス:
  <label><%= f.check_box :cd, { class: 'chk'}, 'yes', 'no' %> CD付属?</label><br />
  ファイル入力ボックス:
  <%= f.file_field :isbn, size: 10, maxlength: 15 %><br />
  隠しフィールド:
  <%= f.hidden_field :isbn %><br />
<% end %>

f:id:uriku:20140623235857p:plain

学習時間

  • 4ポモドーロ(100min)