文系卒未経験のエンジニア兼二次絵描きが有名になろうと悪あがきするブログ

ブログのタイトルそのままです。有名になるために何でもします。

新社会人一年目が終わったのでSeleniumをかじる

一昨日一年目が終わった城田です。悲しい。
先週糸が切れたように寝まくっていました。
毎日10分でも勉強するって言ったのでやります。ちょっとずつ。
そして中途くても報告します。多分。

というわけでSeleniumをですね、やりたいな~と思ってたので触ってみました。
グーグルクロームを立ち上げて、検索して閉じるだけ。
sele_20170402014733eac.png 
勉強になりそうなサイトのメモ

書いたからには、読むんだぞ!


今日の落書き
798onedro 

殺戮の天使のレイチェル
ダニー先生が最高に好きです。目が三つ。

進撃の巨人2期始まりましたね!
生きる気力がわいてきたぞ!

明日もパソコンに向かおう!

「ゼロからわかるPHP超入門」でPHPについてなんとなく理解しToDoリスト作ってみよう!

どうも城田です。半分以上書いてた記事が消えたのでショック死しました。
成仏できなかったので生き返って記事書き直しました。
~やり抜く力 GRIT~(違う)

◇ WEBアプリケーションが作りたい!

発端はお題箱なんですけど。
ちょっと触ってみて、「いいな~!私もツイッター連携の課題進捗管理アプリとか作りたい!(そして自分のモチベを上げたい)」と思いまして。
でもWEBアプリなんて作ったことないから、何から手を付けていいのやら…。
じゃあまずはザックリWebプログラミングについて勉強しよう!ってことで手に取ったのがこの本。

改訂新版 ゼロからわかるPHP超入門
星野 香保子
技術評論社
売り上げランキング: 320,231


結論から言うと、とりあえず理解したい人にとってはめちゃくちゃ良い本でした。
HTMLと他言語やってれば4時間でできます。手軽。


◇ 本の構成

大体以下の三部構成です。(めちゃめちゃ主観入ってます)
 CHAPTER1~3:PHPを書く前の準備
 CHAPTER4~11:PHPの文法
 CHAPTER12:データベースを操作してToDoリストを作る
嬉しかったのが最後の章!データベースってどう始めればいいんじゃ…という人間にとってはすごく勉強になりました。
んで作れたのはこんな感じ。
フォームサンプル(※動きません)
form1.png
fc2にphp上げられなかったので、スクショで。
以下に勉強になったことをまとめておきます。


◇ PHPの特徴

特徴は三つ。
①HTML埋め込み型の言語である
HTML文書の中に、<? php /* PHPのコード */ ?>と書けば、後はページ呼び出し時に実行されます。
HTML文書の中ならどこに書いても、何回書いてもOK!
簡単だけど気を付けないとコードごちゃごちゃになりそう。
ちなみにPHPが書かれた文書の拡張子は「.php」。

②サーバサイドスクリプト言語である
言葉だけで見るとなんじゃらほいですね。
簡単に言うと、Webブラウザでページが呼び出されたら、サーバ側で勝手に実行される言語です。
こいつのおかげで、チケット登録フォームの情報が登録されたりするわけです。
ちなみに、そういう入力した情報とか状況によって表示内容が変わるページのことを「動的なページ」というそうです。
「動的なページ」が作りたいよ~~~~!

③PHP本体のソースコードが無料で公開されている
オープンソースといいます。
自作のライブラリとか作りたい人には良いらしいですが、まだ私はそこまでには至ってない。


◇ PHPの実行環境

本書では、XAMPP(ザンプ)という環境をインストールしました。
サーバ(Apache)、コード(PHP)、データべース(MySQL)が全部まとめられた環境みたいです。
まだよくわからない…。要勉強。



小休憩。
オリキャラの成良浩二君です。育児放棄され続け、中学の時に親を亡くしてグレます。

n.jpg

いつか漫画かゲームにしたい。



後半戦行きます!

◇ PHPの文法の特徴(C#と比較した時)

HTMLとC#やってたら結構知ってる知識が多くてびっくりしました。変数とかループとかif文とか。
ので、ここでは「C#と違うな~」というところだけまとめます。

・変数名の前に'$'をつける
  例 : $name = '城田';
・関数にはfunctionを付ける
  例 : function Sum( $name, $age )
・変数や関数の戻り値の型を宣言しない
  補足 : 型があるにはあるが、宣言の必要はない。わからなくなりそう。
・スーパーグローバル変数やら、マジック定数やら、値を受け取ったり自動取得してくれる便利な変数(定数)がある
・文字列は""でも''でも書ける
  補足 : ""だと、変数直接入れても、変数の値が表示される。(変数の展開)ただ、メモリ食う。

これくらいです。基本が自分の使ってる主要言語と似てるのはうれしい。


◇ データベース操作

主に良かったのがデータベースの操作フローについて知れたことです。
① データベースを作成する
 →MySQLにデータベースを作成し、テーブル(保存したい情報はどんな項目があるのか、それはどんな型か)を作成する
② コードにデータベースへの接続情報を渡し、接続する
→接続するデータベース名、host、文字コード、ユーザー名、パスワードが必要
③ データベースを操作する
→操作の前に、どんな操作をするか(INSERTするとか、SELECTするとか)を情報として与える
 executeで操作実行
④ すべての操作を終了後、nullを入れてデータベースから切断する

これさえわかっていれば、細かい操作は調べながらやれます。
ありがとう作者さん!

以上、PHP超入門でした。
本当にザックリ、という感じなので、Webアプリ作り始めたらまた本を引っ張り出してきて確認したりしそうです。
が、PHP触ったことありますよ~!なんとなくできそうですよ~!という意識が持てたのがうれしいところ。
Webでの表現が広がりますからね。
JavaScriptにも手を出してみたいお年頃です。というかいつかやります。多分。

昨日の夜通しやってたから眠い。
今日はこんなところで。

デリゲートとイベントハンドラの復習

まず初めに。
初めてQiitaに投稿しました!やったね。

記事:なんとなくで来ちゃった人向けのデリゲートとイベントハンドラ再復習

◇ なんでQiitaで書いたの?

色々あって復習しなきゃだめだ!と思ったものの、なんとなくで終わるのが嫌だったので、記事ネタにしました。
ただせっかくなら、技術に関するネタはブログじゃなくてQiitaに書いた方が、他人の目に触れやすいと思ったからです。
見て間違ってるところあったら指摘を頂きたいので。
純粋な閲覧者が多いのがSNSの強みですよね。

◇ 技術ネタ今後

Qiitaにも書いてあるんですが、次があればTimerクラスについてとか、コールバック関数について書きたいです。
というのは、自分が一番わかりたいけど、難しくてなんとな~くでやり過ごしているから。

また、こういったTips的なのは、ブログじゃなくQiitaや他の所に書いて、このブログで紹介していく形にしようと思います。
理由は上述の通りです。
ただ、本をちょっとずつやっていこう!とか、新しい物を作ろう!という時はこのブログにゆっくり載せていこうと思います。
ある程度知識として発表できそうな形になれば、GitやQiitaに公開します。

以上、今後の方針でした!

◇ 今日の落書き

眠くて死にそうなので、過去絵です。

mika.png

そろそろ進/撃/の/巨/人の二期始まるので今からドキドキや~。

システムテスト自動化カンファレンス2017に行ってきました

タイトルそのまま!システムテスト自動化カンファレンス2017に行ってきました!
これです。
Toggetter:https://togetter.com/li/1092249

テスト系のカンファレンスは少ない(印象)ので、見つけた瞬間飛びつきました。
何年か続いているカンファレンスのようで。
一般公演とハンズオン(体験学習)に分かれていたので、今回はハンズオンの方に参加しました。
一般公演のスライド公開全力で待ってます。



◇ ハンズオンの内容 - キーワード駆動による自動テストの環境を作ってみよう

キーワード駆動型テストって?
 - テスト対象の操作内容までテストスクリプトに記載して、操作するテスト
  テキストファイルやExcelに操作内容を書けばテスト実行できるので、作りやすさと保守性が増すよ!

今回のハンズオンでは事前にテストコードが用意されていて、「テキストファイルの変更だけで様々なテストケースのテストが実行ができる」ということを体感できる内容になっていました。
※一部PowerShellでのコーディング有


- システムテストの設計例(汚いよ)

個人的におおー!と思ったところだったので、お絵かきしてみました。
システムテストの設計一例
上から順番に

 - テストスクリプト(講義中ではテストコードという名称でした)
   - テキストファイルとかExcelファイルにテストの手順が記述されたもの
 - テストランナー
   - テスト実行前のフォルダ作成~実行~結果吐き出しまで共通の処理をまとめたもの
    テスト実行時に必ず行う操作なんかもここに入れると、スクリプトがすっきりするよ!
 - キーワード駆動機能
   - スクリプトに記載されている操作内容を見て、エンジンのGUI操作機能と紐づけて操作してくれるところ
 - テストエンジン
   - GUI操作部分、コントロールに振られているNameとかからGUIを操作してくれるいい奴

何が感動したって、他人が考えたシステムテストの設計にちょこっとでも触れられたことです。
人生経験未熟マンな自分にとっては中々貴重な体験でした。


- ハンズオンのふりかえり

4時間もない中で、テストケース作ってみたり、PowerShellのコードを複写したり、システムの設計についての話を聞いたりと盛りだくさんでした。
ちゃんと動くので勝手にできたような気になってしまいますが、そこはやっぱりコード読んで復習したいと思います。
コード・ハンズオン資料共に公開されているので、興味のある方はコード使って実際に資料をなぞってみるといいと思います。
ハンズオン資料:https://www.slideshare.net/koido1961/0306-72861888
コード:https://keyworddriventesttutorial.codeplex.com/

また、キーワード駆動の操作をどこまで共通化するかとか、画面ごとにクラス作るのは正直作成コスト厳しいとかいう問題結構ありそうです…。この辺はテストの対象に合わせて自分で考えていかなきゃやっぱりだめみたいですね…。

というわけで学んだこと
・システム自動テストの設計の一例を学べた
・PowerShellというスクリプト言語を(複写で)記述できた
・講師の方と少しだけお話できた

今後やること
・コードの復習(特にテストエンジン部分のコードは作成済みでほとんど見ていないので要確認)
ソフトウェアテストの設計についてもっと知る

言ったからにはやります!以上!




まじめな話ばっかりで疲れたので、ここで今日の落書き。

rakugaki.jpg

リハビリが必要だ…。



◇ 一般公演 - AutomationTest.SSF-beta2- 自動化アーキテクチャにまつわるスキル

正直私にはレベルが高すぎてなんじゃらほいでしたが、なんとかわかりそうな部分もあったので、今後の自分のとっかかりになることを期待して載せておきます。

AutomationTest.SSFって?
 - テスト自動化スキル標準のこと
  自立した学習の指標にできるように、テスト自動化のスキル標準を定めてるそう

スキルのカテゴリは4つ
① テスト自動化システム関連の管理
② テスト自動化戦略の策定
③ システムの開発
④ ケースの実行

自動化では何が必要なの?
 - テスト結果が必要な理由の理解(何を動作保証すべきか?何を確認すべきなのか?)
 - テストに何が求められているかを認知する
 - ステークホルダーに活動が必要だとわかってもらえる力
(まだ他にも沢山あったけどメモ取れなかった)

ほとんどがマネージャークラスのスキルセットに見えましたが、実際エンジニアもわかってた方がいい事柄なんだろうなあ。
未来の私、がんばれ。

ブログを作った理由

初めましての人は初めまして。城田です。
社会人1年目のエンジニアです。東京のどこかでC#使いながら日々漫然と生きています。


◇ このブログの目的
名前からしてクソブログ感満載の当ブログの目的は、タイトルそのままです。
ズバリ、有名になる
どんな卑怯な手を使おうと泥水すすろうと構わねぇ!とにかく私は有名になってちやほやされてぇんだ!
という自己顕示欲バリバリの目的を達成するために、日々ブログ記事を更新します。


◇ 有名になるために何するの? 考察編
ただ寝てるだけではもちろん有名になれません。なんかしないとね!
しかし0から何かを始めるのは大変だし無理。眠い。飽きる…なら今まで自分がやってきたことを土台にしよう!
ってことで今まで自分がやってきた事を簡単にまとめてみます。

  ・芝居 大学時代にかじる
  ・HP制作 テンプレートサイトからテンプレート借りてちょこっとだけHTML/CSS/WordPressをやる
  ・プログラミング C#の基礎しかわからん
  ・イラスト pixivで気が向いたときにやる 1000user言ったことあるよ!
  ・動画 ニコニコ動画でほんとのほんとに気が向いたときにやる 10万再生いったことあるよ!
  ・SS これとか実は書いてました(※他ブログへ飛びます)

以上!ほとんど進/撃/の/巨/人の二次創作じゃねえか!
こうしてみると動画・漫画・SSなどストーリーを見せる系の物はスマッシュヒット飛ばせてる感じがしますね。
ちなみに私は妄想空想大好き人間です。
せっかくならやりたいことやって有名になりたいよね…ってことで行動編へ。


◇ 有名になるために何するの? 行動編
問題のここです。
考察編を踏まえて自分がやりたいこと(できること)は以下の3つ。
  ①プログラミングでなんか作って人に発表する
  ②絵をかいて人に発表する
  ③ストーリーを作って人に発表する

もちろん有名になりたいのが根底にあるので、すべて人前に出すこと前提で行きます。
貪欲は誉め言葉。

しかし人生は短い。一つ一つのジャンルを極めようとしたらとても50年では足りません。
じゃあどうするか、やりたいことを組み合わせちゃおうぜ!
  ①イラスト/漫画/ゲーム特化のホームページテンプレートサイトやソフトウェアを作る
  ②漫画やゲームを作って載せる
  ③プログラミングについて勉強したことをLTやセッションで、ストーリー仕立てにして発表する

以上。てんこ盛り。


◇ 当面の指標
当面は①の「イラスト/漫画/ゲーム特化のホームページテンプレートサイトやソフトウェアを作る」ことを目標に、
HTML/CSS/JavaScriptを中心に勉強したことをアウトプットしていこうと思います。
その時、更新するルールとして、3つ作りました。
  1. 一週間に一回は更新すること
     →頓挫しないための目安にするため
  2. 誰かが見ている、という体で文章を書くこと
     →1人でも見てくれている人がいると信じて、その人を楽しませるような文章を書く
     →ただ箇条書きにするよりも理解しないと書けなくするため
  3. 必ず絵を入れる
     →文章だけより、やっぱり絵があった方がみんな楽しく見れるから

このルールにのっとって更新していきます。
また、ネタとしては違うけれど、技術系やコミック系のイベントのレポートなんかも書いていこうと思います。

このブログの本当の目的は、アウトプット量を増やして、自分の力をつけること。
日々に埋もれて自分のやりたいことができなくなる前に、少しずつでもやれるようになること。
最後に、少しでも会社外のどこかの誰かと交流をすること、そのきっかけにしていきたい。

そんな感じです。
ここまで読んでくださってありがとうございました。