文系seの備忘録

Excelの改行でひたすらスペースを打っていた機械音痴の文系seが日々の備忘録を綴る。

jenkinsってなんだろう

  • jenkinsとは?


windowsのタスクマネージャーのweb版的なもの。
タスクマネージャーは自分のパソコンのみに設定がされる(20時になったら強制シャットダウン、とか)けど
jenkinsはweb上で複数人が設定可能。
一度設定すれば継続的に動いてくれる。


コマンドプロンプトからビルドやテストを実行しているのを、jenkinsに登録しておけば
決まった時間に自動で実行してくれる。



実行した結果の確認はjenkinsのページ上からは勿論、メールで飛ばすことも可能。
バグを埋め込んだ人にのみメールを飛ばす設定とかも出来る様子。



とりあえず今回は「jenkinsとは何なのか!?」というところまで。

自分はjenkinsに関しては新人時代にわけも分からぬまま使って、執事のオジサンが牙をむいた悪魔に変貌した記憶があります。。。


こういう本ってただ読んでるだけじゃ味気ないですね。実際に動かしてみたくなりました。

次は使い方についてまとめたいと思います。

最近買った本 Jenkins実践入門、リーダブルコード

・Jenkiins実践入門
~ビルド・テスト・デプロイを自動化する技術~

Jenkins実践入門 ?ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)

Jenkins実践入門 ?ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)

Jenkinsを触る機会があるけど使い方を詳しく知らなかったので読んでみようと思いました。




・リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

こちらは先輩がおすすめと言っていたので。。
あまりコードレビューって受けたことないので自分のコードがイケてるのかどうなのか分からないんですよね。
タイトルのとおり、読みやすいコードっていうのを再度意識してみたいと思います。

もっと勉強初心者に優しいネット社会になればなーと思った

2chにて、19歳の少年が自動販売機のコードを組んでエラーになったので助けを求めていた。

blog.livedoor.jp

色々とツッコミポイントはあるかもしれないけど、専門学校入りたてでここまで書けるのはすごいな~って思う。

しかも、自分で「自販機のプログラム書いてみようかな!」って思って書いてみたわけだし、そのやる気が素晴らしい。


私が19歳のときなんていかに効率良く単位を取るか考えてたし、
ましてやプログラミングなんぞ全く知らなかった。



みんな誰だって最初は分からないことだらけなのに、質問したことにたいしてろくに答えずに「クソコード!」「文法すらまともに使えてないし・・」って否定ばかりして何がダメなのか教えてあげなかったら、その人のやる気や自信をなくすばかりでなんの解決にもならないよね。

プログラミング以外にも、知らないことに対してもっと気軽に訊けて、ここはこーすりゃいいんだよ!って回答がかえってくるような、初心者に優しいネット社会になればいいなって思いました。

プログラミング系資格を勉強することのメリット

oracle java silverの資格勉強は色んなところで生かされてます。
その直前まではローカル変数とグローバル変数すら分からない状態だったし、オブジェクト指向って何?クラスって何?
インスタンス化って何?みたいな致命的な状態でしたがそのへんの不明点は大体解消されました。


他の言語をやることになっても、javaではこう書くけどswiftだとどう書くんだろ?っていう風に調べられたり、
オブジェクト指向言語の考え方を流用できたりと、様々なメリットがありました。


なかなか資格の勉強って役に立つ実感が沸きづらいですが、すぐに実感でき、その後も「取って良かったな~」と思える資格でした。
javaの資格に限らずプログラミング系の資格は全般的に実感しやすいのかもしれません。


とはいえ、仕事でバリバリ使っているわけではないため忘れている部分もあるかと思います。
リハビリしつつ、goldの勉強をしていきたいです。


これを参考に、あとはプログラム書いて楽しみながらやっていきたいと思います。

オラクル認定資格教科書 Javaプログラマ Gold SE 7 (EXAMPRESS)

オラクル認定資格教科書 Javaプログラマ Gold SE 7 (EXAMPRESS)

(てかこれ2013年以降新版出てないのね)


本書の内容は以下の通り。

Javaクラス設計
ポリモフィズム
・ネストクラス
オブジェクト指向の設計
Java API
・コレクションとジェネリック
・例外処理
・入出力
・NIO.2
JDBC


面白そうなとこから責めてこうかな。
前にもちょっとかじったファイルIOのnio2とかやりたいな。



oracle系の資格は情報処理と違って随時受けられるから、自分でちゃんとスケジューリングしないとグダグダ遊んで終わりになっちゃいます;;
プログラミングが好きで純粋にソース書ければ良いっていうならいいけれど、資格取得をゴールとするならある程度の計画を立てないとまずいですね。。。



とりあえずは一通りさらってみよー。

改めて、Rubyとは何かをおさらいする

本日は5/6(金)。



社内は平和です。
人はあまりいませんが、何故か自分の周りはけっこう密集しています。

昼休み、やることないのでブログ書いてみます。



改めて、Rubyとは何かをおさらいします。




Rubyとは?
オブジェクト指向言語
javaではintやbooleanなど具体的な値を格納する基本データ型と参照型とに分かれるが、
Rubyは型定義がなく全て参照型となる。

インタプリター言語
javaみたいに事前コンパイル不要。



Rubyの特徴

・他のオブジェクト指向言語よりコードが少ない(気がする)


* java
クラス、mainメソッドが必要。


java hellowolrd

* ruby


ruby helloworld


- javaはクラス内でmainメソッドが実行されてるけど、rubyはクラス自体書いてない。
⇒ 実行時のクラス作成は不要(ref.http://www.rubylife.jp/ini/method/index1.html
- コマンドでrbファイル叩くから、最初に実行するとこはどこだ~?ってならないのでmainメソッド不要

・変数
- 動的型付け
変数の型がなく、どんな型も変数に入れられる。
- 変数の種類
変数の前にprivateとかつけるんじゃなくて、変数名で判断できるような名前にする
* ローカル変数
小文字アルファベット or _(アンダースコア)ではじめる
* グローバル変数
変数名の前に $ をつける
* クラス変数
変数名の前に @@ をつける
* インスタンス変数
変数名の前に @ をつける

 ・テーブル

  http://qiita.com/fakestarbaby/items/2e832be8aa5bc5e93e69#2-6

  * Hash.new で要素が空のハッシュオブジェクト作成

  * key, valueの記述は「=>」を使うことが推奨されている

    ex. { :id => abc }

 ・:id のようにコロンがついているもの

  任意の文字列と一対一に対応するオブジェクト

  http://docs.ruby-lang.org/ja/2.0.0/class/Symbol.html

  文字列だと別のオブジェクトになるけど、

   a = 'cat'

   b = 'cat'

  こう書くと同じオブジェクトを参照するようになる

   c = :cat

   d = :cat

  ・型変換

    - 文字列 ⇒ 数字 : num = "1".to_i

    - 数字⇒ 文字列 : str = 1.to_s


自分が使ってみた感想として、rubyはとっつきやすいオブジェクト指向言語って印象を受けました。

かなり素人目ですが、javaはクラスつくってコンパイルしてなんたらかんたら・・・みたいな色々裏の仕組みが複雑なのに対し、rubyはテキストファイルで書いたものがそのまんまコマンドで実行できるという単純な仕組みなので、オブジェクト指向を内部構造からしっかり把握しながら学びたい初心者さんには適してるんじゃないかと思いました。
なので、自分ももしかしたらjavaよりrubyのほうが根本的な理解を深めるには合っているのではないか?と思ったり・・。

ただ、rubyに慣れてしまうとカッコやセミコロンで記載するcやjavaが違和感に感じたり、微妙な文法の差に戸惑ったりすることもあるかもしれません。
でもそれはすぐ解決することだと思うので、総じて見ればrubyはプログラミングの入門言語として良い言語だと感じました。

rubyで自動化

以下ファイルをspecディレクトリ以下に置く。

・featureファイル (xxxxxx.feature)

  • シナリオ(テストケース)を記述

・stepファイル (xxxxxx_steps.rb)

  • シナリオの中身を実装

※ stepファイルの分割
tepが大きくなったときなどに分割する際は、"steps_for:~"で分割する

ex.

steps

gist3a141812a6258d30c64859e1863ac926


feature

gist0c9672b4e8047e00b1860a728a6c8b62





実行

bundle exec rspec spec/xxx.feature
(Gemfileで指定された環境をexecute(実行)して、rspecというテストのフレームワークで xxx.featureファイルを動かす・・ってかんじ(で合ってる?))
というか、bundler(gemfileの管理ツール)をインストールすると、bundle execを省略するとエラーになると思います。

Windows環境でRubyInstallerからRubyInstallerからRubyをインストールする際の注意点

Win環境でRubyInstaller(
http://rubyinstaller.org/downloads/
)からRubyInstallerからRubyをインストールした場合、

別のバージョンにupdateもしくはdowngradeさせたいなーってなったらRubyGemsを再度入れなおす必要がある。




Ruby2.x ⇒ 1.9.x に変更したら以下エラーが発生した。

$ C:\Ruby193 > gem install selenium-webdriver

WARNING: Error fetching data: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://rubygems.org/latest_specs.4.8.gz)
WARNING: Error fetching data: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://rubygems.org/specs.4.8.gz)
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://rubygems.org/gems/multi_json-1.11.2.gem)



Windows 向けの RubyInstallerで Ruby をインストールすると、同梱の RubyGems が悪さしてこの現象が起きるらしい。


対応策
 ⇒ 公式ページからRubyGemsを直接持ってくる


f:id:ron623:20160427111741p:plain


インストールコマンド実行
$ gem update --system 1.8.30


これでバージョンが変更される。
$ C:\Ruby193>gem -v
    1.8.30


Win環境だといろいろと問題が起こる。。。。
めんどくさい。