ネオキャリアグループ開発者ブログ

ネオキャリアグループの技術者による開発ブログ

ガード句でRubyの防御力を上げる!初めてのContract

「じゃあここのメソッドに引数を渡して実行して…」
「よし!完璧に動いてる!」
「ついでにコメントを書いておこう!」

後日… 「ここのメソッドは[@params String]の型が入って動作するから」
「String型を渡して……」
「エラー…._| ̄|○」

数日後… 「この前のコードコメントが間違えてて違う型だった!(〇*>∀<)ゞ★☆」

「えっ….」
「えっ?….」
f:id:daiki-matsuzaki:20170127122147j:plain

こんにちは!冒頭からすみませんw。
ギリギリ新卒エンジニアの松崎です。
前回のこの記事以来になります。

neo-developers.hatenablog.com

今回紹介するのはRubyで型を縛る方法です!
(phperの方はごめんなさい!)

〜 読んでいただきたい人 〜

  • ジェンガコードに怯えている方
  • 人とコミュニケーションが取りづらい方
  • 人の入れ替わりが激しいプロジェクトにいる方
  • 適当なコメントやコメントが無い事に悩まされる方
  • エンジニアの皆さん

目次

型を縛る??とは

今回はRubyのgem Contractsを使用します。
このgemは「メソッドの引数と戻り値が、ある条件を満たしているかをチェック」できるものです。

github.com

使用方法

インストール

まずはgemfileに記述します。

gemfile

gem 'contracts'

ファイルへの記述

Contractsをclassやmoduleにincludeします。

sample.rb

class Sample
  include Contracts

これで使用できる準備ができました!

簡単な使用例

さっそく例に移ります! まずは成功例からです。

class MyCalculate
  include Contracts

  Contract Num, Num => Num
  def self.add(a, b)
    a + b
  end
end

puts MyCalculate.add(1, 1)

解説です。 MyCalculateClassのaddメソッドの引数として2つの引数Numeric型を指定して出力しています。

Contractsの設定は
1.MyCalculateClassのaddメソッドの引数が 2つともNumeric型 であること
2.MyCalculateClassのaddメソッドの戻り値が Numeric型 であること

を確認しています。 ここでは問題なく成功したのでなにもおこりません。

こちらは失敗例です。

class MyCalculate
  include Contracts

  Contract Num, Num => Num
  def self.add(a, b)
    a + b
  end
end

puts MyCalculate.add(1, "good!!")

解説です。
MyCalculateClassのaddメソッドの引数として Numeric型・String型を指定して出力しています。

先ほどと同様でContractの設定は
1.MyCalculateClassのaddメソッドの引数が 2つともNumeric型であること
2.MyCalculateClassのaddメソッドの戻り値が Numeric型であること

を確認しています。

しかしNumeric型を期待していたのにString型が指定されました。
そのため、これを実行すると以下のように例外が発生します。

./contracts.rb:4:in `failure_callback': Contract violation: (RuntimeError)
    Expected: Num,
    Actual: "good!!"
    Value guarded in: Object::add
    With Contract: Num, Num    

解説です。
1.Expected: Numで期待(予想)している引数はNumeric型であることがわかります。
2.Actual: "good!!"で実際に引数で指定した値を出力しています。

Numeric型が来るはずなのに値がNumeric型じゃ無いですよ!と出力されています。

値の型チェック

例1)
Contract String => nil
def greet(name)
  puts "hello, #{name}!"
end

解説です。
Contractsの設定は
1.greetメソッドの引数がString型であること
2.greetメソッドの戻り値がnilであること
を確認しています。

先ほどと違うところはメソッドの戻り値が何もない場合、nilを指定できるところです。

例2)
Contract ArrayOf[Num] => Num
def count_total_numbers(nums)
  nums.inject(:+)
end

解説です。
Contractsの設定は
1.count_total_numbersメソッドの引数が Array型で配列の中は Numeric型 はあること
2.count_total_numbersメソッドの戻り値が Numeric型であること

を確認しています。

この場合、配列の中まで確認することができます。
成功 count_total_numbers([1, 2, 3, 4]

失敗 count_total_numbers([1, 2, 3, "foo"])

そのほか、Contractsに標準で組み込まれている様々な型チェックが使用できます。
実際に業務でContractsを使用した際に、頻出した型チェック(のリスト)です。

確認できる型
Bool 真偽値(true or false)をチェックできます。
Or 型の条件が2つ存在する場合にどちらか一方の型をチェックできます。
HashOf Hash型の時に使用します。例)HashOf[Symbol,String] Hash値の中の型まで見ることができます。
Maybe 型にnilが来る場合に使用します。 Or[String,nil]と同じ意味です。
Any 型を見ずに何かしらの値が来ていることをチェックできます。
例えばHashが入れ子になりすぎている状態だと長すぎて邪魔なためAnyで省略したり
rubyでは最後に評価した値が戻り値になるので
引数や戻り値を見る必要がない場合などに使います。

もっと詳しい情報はこちらのリファレンスページに記載されています。

自作のContracts

型自体が標準で組み込まれていない、開発者側が定義した型が存在する場合
自分で型チェックを作ります!σ゚ロ゚)σ

Contractの標準で組み込まれているメソッドはこのようになっています。

class Num
  def self.valid? val
    val.is_a? Numeric
  end
end

解説です。

classメソッドにvalid?をつけることによってバリデーションを使用します。
引数で渡ってきた値をis_a?メソッドで型の判定をしています。

標準メソッドを応用して新たにチェックするメソッドを作成します。
railsのlibディレクトリの中にCustomContractsディレクトリを作成し
CustomContracts配下にUserファイルを作成しました。

module CustomContracts
  class User
    def self.valid? val
      val.is_a?(::User)
    end
  end
end  

呼び出し

Contracts CustomContracts::User => String

解説です。
基本的に標準メソッドと同じですがここでチェックしている型は
User(UserClass)型です。
呼び出し側はクラスメソッドになっているのでCustomContracts::User
で呼び出せます。

is_a?(::User)is_a?(User)にしてしまうとCustomContractsのUserクラス
を見てしまうのでこのようにしています。

最後に

最後までご覧いただきありがとうございます!

実際にContractsをプロジェクトに導入すると
メソッドの引数に制限が加えられたので、想定していない型で引数が
セットされることがなくなりました。
つまり、型の不一致によるバグを事前に防ぐことが出来ます!

皆さんも是非使ってみてはいかがでしょうか?

弊社について

ネオキャリアでは、エンジニアの募集を行っています。
ぜひ!募集記事をチェックしていただけると嬉しいです!(*>ω<)b

www.wantedly.com

www.wantedly.com

参考サイト

Contracts.ruby by egonSchiele

こちらの記事は、Qiitaに投稿したものと同じ内容になっています。

ガード句でRubyの防御力を上げる!gem Contract - Qiita

新人よう太の冒険: FactoryGirlとの出会い ~序章~

こんにちは!こんばんは!

あけましておめでとうございます!

新卒エンジニアのよう太です。


突然ですが、皆さん


『きれいなおねえさんは、好きですか。』

f:id:Yoko_Takaki:20170113210827j:plain


私は大好きです。
かわいい女の子も好きです。

と、いうことで
今回は私が大好きな『Factory Girl』について書こうと思います。

 

こちらの記事は、Qiitaに投稿したものと同じ内容になっています。

世界一やさしいFactoryGirlの使い方:入門編 - Qiita

 

FactoryGirlって誰?


FactoryGirlとは、テストデータの作成を手伝ってくれるgemです。
テストデータ...
それはテストコードを書く上で切っても切り離せない存在です。
自力でテストデータを用意することも可能ですが、
FactoryGirlを使用すると、複数のテストデータなどを簡単に作成することができます!


FactoryGirlのインストール


それでは、FactoryGirlをインストールしてみましょう。

まず、Gemfileに'factory_girl_rails'を追加してください。
今回私は新規アプリを作成したので、'rspec-rails'も一緒に追加しました。

group :development, :test do
gem 'rspec-rails',
gem 'factory_girl_rails'

 

このままbundle installを行うと、最新バージョンがインストールされるので、
バージョンを指定したい方は

'factory_girl_rails', '~> 4.0'


このように、gemの後ろに指定したいバージョンを書いてください。


 FactoryGirlと出会ってみる

 

ファクトリーファイルの作成


インストールが終わったら、早速ファクトリーをアプリケーションに追加してみましょう。
FactoryGirlをインストールしている状態でモデルを作成すると、
モデルと一緒にファクトリーも作成されます。

$ rails g model Blog title:string word:text writer:string
Running via Spring preloader in process 7449
invoke active_record
create db/migrate/2016**********_create_blogs.rb
create app/models/blog.rb
invoke rspec
create spec/models/blog_spec.rb
invoke factory_girl
create spec/factories/blogs.rb

既にアプリケーションをお持ちの方は、
specディレクトリの配下にfactoriesディレクトリを作成し、

モデル名.rb


上記のようなファイル名を作ってください。

 

デフォルトのテストデータ


ファクトリーファイルの作成ができたら、テストデータを作成してみましょう。


先ほど rails gコマンドでBlogモデルを作成したので、
spec/factories/blogs.rbで定義します。

モデルと一緒に作成されたspec/factories/blogs.rbを見てみると、
下記のようなテストデータが自動的に作成されています。

*注意 FactoryGirlをインストールする前に作成したモデルに対しては、手動で定義する必要があります。

FactoryGirl.define do
  factory :blog do
     title "MyString"
     word "MyText"
     writer "MyString"
  end
end


せっかくテストデータを用意してくれたので、
テストを実行するとどのようなデータができるのか試してみましょう。

FactoryGirlと遊んでみる


テストデータの生成

FactoryGirlの挙動を確認するために、簡単なテストコードを書いてみました。

spec/controllers/blogs.rb

require 'rails_helper'
RSpec.describe BlogsController, type: :controller do
describe '#create' do
context '正常系' do
context 'DBに登録されていないBlogのtitleである場合' do
it '新しいモデルが生成される' do
# setup
blogs_model = FactoryGirl.create(:blog)

# exercise
post :create

# verify
actual = Blog.find_by({title: blogs_model.title})
expect(actual).not_to be nil
end
end
end
end
end

*テストの対象はblogs_controllerです。

app/controllers/blogs_controller.rb

class BlogsController < ApplicationController
def create
Blog.find_or_create_by(title: "TestTitle")
end
end

 

テストコードの中に、下記のようなコードが書かれています。

spec/controllers/blogs.rb

blog_model = FactoryGirl.create(:blog)

 

このように、FactoryGirl.create(:モデル名)と記述した場合
DBにテストデータが保存されます。

試しにtest環境のDBを覗いてみると...

mysql> select * from blogs; 
+----+----------+--------+----------+---------------------+---------------------+
| id | title | word | writer | created_at | updated_at |
+----+----------+--------+----------+---------------------+---------------------+
| 1 | MyString | MyText | MyString | 2016-**-** **:**:** | 2016-**-** **:**:** |
+----+----------+--------+----------+---------------------+---------------------+

 

Blogテーブルにテストデータが保存されていることが確認できました!

 

* createの他にも、buildやattributesといったテストデータの生成方法があります。

テストデータ生成方法の例
FactoryGirl.build(:モデル名)
FactoryGirl.create(:モデル名)
FactoryGirl.attributes_for(:モデル名)

テストデータの上書き


テストコードを書いていくと、デフォルトのテストコードではなく
より現実的なデータを使用したくなるかもしれません。
そんな時は、テストデータを生成する際に、引数として「任意のテストデータ」を追加してみましょう。

Blogモデルには[writer]というブログの著者の名前を格納するカラムがあるので、
著者の名前を指定してみます。

spec/controllers/blogs.rb
blog_model = FactoryGirl.create(:blog, writer:'asopasomaso')

 

このテストコードを実行すると、

著者の名前が"asopasomaso"なテストデータが生成されます。

test環境のDBを検索してみると...

mysql> select * from blogs where writer = 'asopasomaso'; 
+----+----------+--------+-------------+---------------------+---------------------+
| id | title | word | writer | created_at | updated_at |
+----+----------+--------+-------------+---------------------+---------------------+
| 2 | MyString | MyText | asopasomaso | 2016-**-** **:**:** | 2016-**-** **:**:** |
+----+----------+--------+-------------+---------------------+---------------------+

 asopasomasoがDBに存在することが確認できました。

複数のテストデータ作成


ここまで取り上げてきたテストデータの生成方法では、
一度に1つのテストデータしか作成することができません。
複数のテストデータを生成したい場合は、create_listの引数に「生成したいテストデータの数」を追加してください。
例として、5つのBlogを作成してみます。

spec/controllers/blogs.rb

blog_model = FactoryGirl.create_list(:blog, 5)

 

このテストコードを実行して、test環境のDBを見てみます。

mysql> select * from blogs;
+----+-----------+--------+-------------+---------------------+---------------------+
| id | title | word | writer | created_at | updated_at |
+----+-----------+--------+-------------+---------------------+---------------------+
| 8 | MyString | MyText | MyText | 2017-01-11 07:33:02 | 2017-01-11 07:33:02 |
| 9 | MyString | MyText | MyText | 2017-01-11 07:33:02 | 2017-01-11 07:33:02 |
| 10 | MyString | MyText | MyText | 2017-01-11 07:33:02 | 2017-01-11 07:33:02 |
| 11 | MyString | MyText | MyText | 2017-01-11 07:33:02 | 2017-01-11 07:33:02 |
| 12 | MyString | MyText | MyText | 2017-01-11 07:33:02 | 2017-01-11 07:33:02 |
| 13 | MyString | MyText | MyText | 2017-01-11 07:33:48 | 2017-01-11 07:33:48 |
| 14 | MyString | MyText | MyText | 2017-01-11 07:33:48 | 2017-01-11 07:33:48 |
+----+-----------+--------+-------------+---------------------+---------------------+

 idが8から12の行のcreated_atのカラムに注目してください!

モデル名の後ろに追加した「生成したいテストデータの数」分、テストデータが同じ時間に作成・登録されています。

 


FactoryGirlと付き合ってみる?


FactoryGirlの便利な機能はこれだけではありません。
連番データの作成や、関連データの作成などなど、
様々なテストデータを作成することができます。

(´-`).。oO(年明けにまとめようかな...)


弊社について


ネオキャリアでは、エンジニアの募集を行っています。
ぜひぜひ、募集記事をチェックしていただけると嬉しいです!

 

www.wantedly.com

www.wantedly.com

 

References

- [いまさら聞けないfactory_girl入門](http://tech.grooves.com/entry/2015/04/28/173025)
- [Everyday Rails - RSpecによるRailsテスト入門](https://leanpub.com/everydayrailsrspec-jp)

 

 

参考になるデザインまとめ!

 

f:id:shinjimiyamoto:20161202120120p:plain

自己紹介

こんにちは!

自分は、美容師 → 料理人 → WEBデザイナー → エンジニア(いまここです。)エンジニアとしては、初心者です。

20 〜 24 歳の頃に、美容師の仕事をしたり、料理人もしたり、、、 以前の会社では、フロントエンジニア兼webデザイナーとして働いてました。

最近はプライベートでプロジェクターと一眼レフを買いました。プロジェクターを使ってプロジェクトマッピングとかやりました。映像編集のソフトが使えないと、楽しめないとわかったので、今はアフターエフェクトプレミアプロを使って遊んだりしてます。よく、アマゾンビデオをプロジェクターで鑑賞しています(^^)

ネオキャリアでは、以下プロダクトのデザイナー&フロントエンジニアを担当しております。

人事部と総務部のお役立ち専門用語ならjinjer

 

前置きが長くなりそうなのでようやく本題です。 \(^o^)/  

今日は、デザインする時、エンジニアにアニメーション等を伝える時に参考になるサイトを厳選してご紹介します。

ライセンスは、自己責任でお願いします。
 

クリエイティブ系WEBサイトギャラリー編

  

  

クリエイティブ系WEBサイトギャラリー(海外)編

Behance

Dribbble - Show and tell for designers

アプリ(UIUX)編

http://www.inspirationde.com/ui-ux/

 

おしゃれなLP編 

 

フォント編

アイコン編


  

エンジニアに伝える時アニメーション編
Pixate

 

よく使うWEBサービス
Grid Designer 2

余白の調整で使います

 

 

配色編

BrandColors – Official color codes for the world's biggest brands

配色の参考に

 

ダッシュボード編(htmlもあり)

 

UIUXガイドライン編 
ユーザインターフェイスのデザインのヒント - Apple Developer 

パワポテンプレ編
PowerPoint Templates from GraphicRiver 

無料写真素材編(海外)
picjumbo — free stock photos

写真のクオリティーはそこそこよいです。枚数が少し少ないです。

クオリティは高いです。ただ、種類が少ないのと、ジャンルがかたよってます。

 

 

無料写真素材編(国内)

数と種類は沢山あります。

 

個人的に結構使います。

 

かわいい女性向けの画像に特化した素材集です。

 

 

無料、ポスター素材(ai) 

いろいろ無料でダウンロードできます。

 

PSD Templates elemisfreebies

BrandsClap -

 

おわりに

さて、少しは参考になったでしょうか。
自分は、デザイン周りの記事を書いていこうかと思ってます。
ネオキャリアはエンジニア、UI/UXデザイナー採用を行っています。
インターンも募集してます!
ぜひ弊社のサイトや募集内容をチェックしてください!!


 

 ちなみに、新宿は美味しいごはんのお店も沢山あります。


UnityとNeuronでお手軽モーションキャプチャをやってみた!

f:id:vr_sasa:20161108154803j:plain

こんにちは!ネオキャリアで働くVRエンジニアのsasaです。

 

昨年度までは自社の求人サイト『FINE!保育士』の開発責任者を務めさせていただき、今年度からは、VR専門エンジニアとして、研究開発の分野に携わるようになりました。

f:id:vr_sasa:20161107180052p:plain

sasa
コーヒーとphpが大好き。

2013年に入社し、ネオキャリアの新卒エンジニア第1号として頑張っています。

 ネオキャリアにはVRブースがあるんです

実は、ネオキャリア新宿オフィス内には社員なら誰でもVR体験ができるよう、VRブースを設けています。

f:id:vr_sasa:20161108124726j:plain

ブース立ち上げ直後で雑多ですが、そのうちPepperくんとお片付けする予定です。

今回の本題です。

ところで皆さん、一度は思ったことはないでしょうか。

「俺もパソコンの画面の中に入り込んで、ディスプレイの先でしか会えないあのキャラクターとキャッキャしたい。」

これだけ技術が発達した世の中なのだから、その恩恵にあずかればお手軽にできる気がします。

 

まず、夢の実現に必要なものを用意していきましょう。

続きを読む

【最悪死にます】エンジニアがやりがちな5つの習慣

皆様はじめまして!

営業職で内定、気付いたらエンジニア配属になって2年目のみきちです!
好きなことは仕組みを考えることです。
ディズニー行ったらミッキーよりもアトラクションの仕組みが気になります(。・ω・。)

今日は、私が1年半のエンジニア生活で見てきた・体感してきた
「これ、やり続けたらやばいよね?」と震えた
習慣についてお話ししたいと思います...(ΦωΦ)!!

あなたも自覚のないうちにやっているかも...!?

実は恐ろしい5つの習慣

1.パソコンを見る姿勢が悪い

f:id:miki_sakai:20161014141920j:plain ◆すごく猫背になっている
◆肘をつきっぱなし
◆もたれるような座り方をしている
周りにもすごい姿勢で仕事をしている人はいませんか?

悪い姿勢は、体の筋肉を緊張させ、体にさまざまな不調を起こします。
頭痛、腰痛、手足のしびれ、くも膜下出血、胃もたれ、首や肩のこりなど...
ひどい場合には、脳梗塞など突然死のリスクにも繋がります!!!

自分の姿勢を確認し、正しい姿勢を心がけましょう(^o^)/

▼正しい座り方がまとまっていたので参考にどうぞ!
疲れない!!太らない!!デスクワークでの座り方で心がけたい8つのポイント

2.長時間パソコンを見続けている

f:id:miki_sakai:20161014141816j:plain お仕事の都合上、長時間見るのは避けられないですが
間に休憩を入れるのと入れないのとでは目の負担が全然違います。

眼精疲労が悪化すると目が開けられなくなったりすることも。
エンジニアとしてのお仕事ができなくなってしまったら、元も子もないですよね。

長時間パソコンを見ているな、なんとなく目が疲れたな、と思ったら
適度に目を休めましょう!

▼目を休める方法の参考にどうぞ!
今日も頑張るエンジニア・デザイナーのあなたに。目の疲れを解消・予防するためにおすすめの方法まとめ

3.夜中ずっと作業し続け、電源が切れたように寝落ちする

f:id:miki_sakai:20161014141911j:plain これは私がマッサージ師のお姉さんと会話していて言われたことでした。
「最近毎日パソコンの前で寝落ちしてるんですよねー」
「それは良くないですよ。
パソコンの前だとブルーライトを浴びていて 体が覚醒状態になっています。
そこから睡魔で寝落ちするっていうことは、バリバリ稼働中のパソコンに対して電源ボタン長押ししてるのと一緒ですよ
!!!!!!
この衝撃は、忘れません。笑

毎日のように寝落ちしているというのは、毎日のように
パソコンをブチ消ししているのと同じようなものなのです・・・!

エンジニアのあなたなら、この恐ろしさ...分かりますよね...!?!?

4.朝起きるのがだんだん遅くなる

f:id:miki_sakai:20161014141824j:plain 「エンジニアは朝起きるのが遅い」とよく言われます。
朝起きるのが遅い
→仕事の開始が遅い
→仕事の終了が遅くなる
→夜寝るのが遅くなる
朝起きるのが(ry
このループは止まりません!!!

人は、朝起きて日光を浴びることで体内時計がリセットされるといいます。
朝しっかり起きることにより、夜の眠気も引き起こすことができ、遅寝が防止できます。

▼企業が取り組んでいる事例を真似してみるのも面白いかも!?
ドワンゴ「助けて! エンジニアが朝出社しないの!」→ 女子マネージャーが弁当を手渡してくれる「女子マネ弁当」システム導入で生活習慣改善へ

5.常に間食している

f:id:miki_sakai:20161014141839j:plain 自分のデスクの上や引き出しの中・・・
夢のお菓子boxが出来上がっている人は多いのではないでしょうか?
私も間食大好きっ子の一人です!

間食はリラックス効果などもあると言われていますが、食べ過ぎは別。
体重増加だけでなく、高血糖や脳血管疾患、心疾患など...
特に40歳以上から要注意だそうです。

自分がどれくらい間食しているのかを見直し、少し減らしてみましょう。

▼夜遅い間食は特に控えたほうがいいようです!
間食の習慣は糖尿病のリスク大?!

【番外編】私が実践して良かったと思う健康法

ここまでキケンな5つの習慣を挙げてきました。
皆様は、どのくらい当てはまったでしょうか?

ここからは、私が実践してみて良い効果のあった健康法をお伝えします!

1.仕事中、基本はスタンディング。座るときはバランスボール。

f:id:miki_sakai:20161014141846j:plain 普通の椅子に座っているときは腰が痛くなり、姿勢も崩れがちでした。
スタンディングに変えてからは立ち姿勢を意識しやすく、
何と言っても眠気が吹き飛びます!!!!
特にお昼ご飯終わってからの眠気が辛いあなた、ぜひお試しください♪( ´▽`)

また、座る時もバランスボールにすることによって
腰が痛くなることがなくなりました!!
私は体がかなり凝り固まっているらしいのですが、
マッサージ師のお姉さん(二回目の登場)に
お尻の筋肉だけはすごくほぐれていると言われましたw
バランスボールのおかげですwww

2.夜寝る前30分はパソコン・携帯を見ない。

f:id:miki_sakai:20161014141859j:plain 寝る前にブルーライトを浴びる機会を無くすようにしました。
その結果、寝つきがよくなり、朝の目覚めが良くなりました!
加えて、部屋の電気もだんだん暗くしていき、自分の体に
「今から寝るんだよー」と教えるようにもしています( *`ω´)

3.寝る前、朝起きた時にちょっとだけヨガ。

f:id:miki_sakai:20161014141852j:plain ヨガのこころえが無くても大丈夫です。
体が硬くても大丈夫です。
Youtubeさえ再生できれば大丈夫です!

「朝ヨガ」「夜ヨガ」で検索してみてください♪
5分だけでもやってみると寝つきと目覚めが全然違います!
夜はだんだん体が休まっていき、
朝はだんだん全身が目覚めていく感覚を感じられます( ´θ`)ノ

まとめ

いかがでしたか?
「悪い習慣」は無意識のうちにやってしまいがちでも、
「良い習慣」は意識してやらないとできないですよね。

「悪い習慣」が積み重なると、自分の体は徐々に悪くなっていきます。
疲れやすかったり、仕事に集中できなかったり、様々な場面で悪影響が出ます。

ですが、人間とは凄い生き物で...
「体調の悪い自分を正常の自分だと思い込むようになる」んです!!!!

肩こりが辛いなぁ、痛いなぁ・・・
→すごく辛いなぁ、痛いなぁ・・・
→(いや、違う!これは正常の自分なんだ!)
コレハ辛クナイ、コレハ普通

ずっと辛いままでいたくない故に、辛い状況を「辛くない」と認識してしまう。
人間の凄さであり、怖さだと思います。

そうやって、「気付いたら手遅れ」にならないように!!!
今から自分の生活習慣を見つめ直しましょう♪
良い仕事は、健康な生活からですっ(^^)

インフラを主体にWeb業界の思い出を振り返ってみる

自己紹介

はじめまして、業界歴が20年近くなるアラフォーのポンタっす。

河野パパとは同い年です!

で、「ブログ書けよ(゜ロ゜)」って言われたんですが、最近開発とかやってないのでネタに困り思い出に浸ろうかと思います。

実際にはキレイなお姉様に「ブログ書きませんか?」って言われたので、二つ返事で「書きます(*´∀`*)b」って言ったんですがね、お姉様には逆らえません(*´ω`*)

 そんな訳で、特にインフラ屋さんではないんですがインフラを触る機会も多かったり今も触ったりするので、Web業界をインフラ主体に振り返ってみますよ! 

2000年頃 

今は亡き人生初の奉公先では、i-mode向けのサービス開発をよくやってました。

この頃のWebサービスのインフラといえば、データセンターにサーバーを設置して、1Mと10Mとかの専用線契約をしてとかが多かった気がしますが良く覚えてません。

はっきり覚えてる事と言えば、データセンターのコロケーションサービスでスペースを借りて、自前で組んだラックサーバをマウントしたりして、各種配線をどう美しくケーブリングできるかに時間掛けてたって事くらいですな。I love Panduit(○´3`)

f:id:ponta-kun:20160928172503j:plain

自前でサーバ組むのは、当時はベンダーのサーバとかはとても高価だったからなんですが、正直に言うと趣味というところが理由の大半です(*´∀`*)

LinuxRedhatが主流でしたが、なぜかTurboLinuxを使いext3の遅さに嫌気がさし、ReiserFSを使うといったことをやってました。

アプリケーションもPerlで開発してましたが、まだフレームワークとかも充実しておらずオレオレフレームワークがいくつか社内で跋扈するという感じで、カオスな環境だったなと(;・∀・)

 

続きを読む

新卒エンジニアは見た! 〜ネオキャリア開発現場の実態〜

はじめまして!

新卒1年目のよう太です。
今回は、私の自己紹介とネオキャリア開発チームの雰囲気をご紹介いたします!
求人情報や会社HPだけではなかなか分からない、
開発現場・開発チームの雰囲気を新卒ならでは(?)の切り口で紹介していきますので、
最後まで読んで頂けると嬉しいです!

自己紹介

あのケツの正体

改めまして、ケツ出しNGことよう太(女子)です!!
詳細はこちら

neo-developers.hatenablog.com

 

今年の4月末からエンジニア配属になりました。
学生時代は社会学を専攻し、中国移民について学んでいました。
統計学の講義以外ではほとんど計算が必要ではなく…
PCを使用するのはレポートとパワポを作成するときだけ…
コマンドプロンプトを開いたこともない…
そんな生活を4年間続けた私は


ど文系です!!!!!!(´>ω∂`)

 

やせいの 文系が あらわれた!

ど文系の私は、ネオキャリアに「営業職」として入社しました。
しかし、一ヶ月の新人研修の後「エンジニア」配属になりました。

当時の私の知識レベルは、

「なんかC言語Javaは聞いたことがある…」
「HTMLとCSSは高校の授業でちょっと齧った…」

この程度でした( ˙-˙ )

最初は「まずコマンドって何だ…」とPCの黒い画面を見ながら絶望したり、
赤文字のエラー文を見てビビり倒したりしていましたが、
周りの先輩方のおかけでなんとか1/10人前くらいにはなれたと思います…!
おそらく(´>ω∂`)

会社選びで大切なことって?

さて、就職活動が近くなると「会社選びの基準」という言葉を一度は耳にすると思います。
「やりがい」「給与」「勤務時間」「福利厚生」「職場の環境」…
例を挙げるとキリがありませんが、人それぞれ譲れない基準があるのでしょうか?

私が就職活動中に重視していたのは、

ずばり「社風」でした。

働きだすと、家族よりも長い時間を会社の人と一緒に過ごすことになると考えると、
企業風土や社員の方の雰囲気は無視できない要素の一つでした。

最優先条件ではなくても、「社風」を意識する方は多いはず…

しかし、制度で決められている「給与」や「福利厚生」と違って、
求職サイトを見るだけではなかなか理解できないのが「社風」です。

ネオキャリアの雰囲気が知りたいけど、エンジニアの情報があまり掲載されていない…
 どうしようかな…

そうお思いのあなたにm9(`・ω・´)
ネオキャリア開発チームの雰囲気!魅力!そして愉快な仲間たち!
採用HPには一切掲載されていない情報を
包み隠さずご紹介いたします!!

f:id:Yoko_Takaki:20160916074040j:plain

だがケツは隠す!!!!!!!!

ネオキャリア開発チームのご紹介

ネオキャリアの開発チームはいくつもあるのですが、
今回は私が所属しているチームのご紹介をさせて頂きます!
他の開発チームに関しては、他の方が詳しく紹介されると思いますので、
ご期待ください( ͡° ͜ʖ ͡°)

Anteleチーム

私が働いているチームは、「Antele」というInstagramのまとめサービスを開発・運用しています!

 

antele.me

Anteleチームの魅力は、ここでは挙げきれないほどあるのですが、
今回は厳選して2点、ご紹介いたします!

スタンディング!

既に河野さんがこのブログで取り上げられていましたが、スタンディングはAnteleチームの象徴とも言えるほど支持されています

Anteleチームのデスクにあるスタンディング台数は、なんと6台!
気分転換や集中力の向上、運動不足の解消など、
様々な理由でスタンディングされています!

*運動不足・ダイエットに関心がある方はこちら

₍ ( ˙ω˙) ⁾⁾

coregano.fine.me

お腹に優しい!

f:id:Yoko_Takaki:20160916075157j:plain

見てください、この胃薬の充実っぷり…
決してお腹が弱い自慢をしたい訳ではありません。
先日、私が賞味期限が切れた食品を食べて食中毒を起こし、一週間ほどトイレの神様になっていた際に先輩方から頂いたものです(´ω`)

お腹の調子を気にせず仕事に集中できます!!

ゆかいななかまたち

次に、私の同期である16新卒のメンバー7名(企画・開発職)を紹介いたします!

まずはこの5名!

f:id:Yoko_Takaki:20160916075724j:plain

右の2名はマーケティング、左の3名はエンジニア(2名)と事業企画配属のメンバー達です。
「真面目な写真を撮りたい」と伝えたら、大臣就任風に並んでくれました。
真面目さが伝わって来る一枚ですね。

f:id:Yoko_Takaki:20160916075803j:plain

真面目です。

 

続いてはこの2名!


いや、全員で写真撮ろうと思っていたものの、
時間が合わなかったから写真が分かれているとかそんなことはないですよ!

 

f:id:Yoko_Takaki:20160916080001j:plain

この二人はエンジニアで、左は以前Ansibleで燃えたまっつーです。

 

neo-developers.hatenablog.com

 

ピースを被せて「やったった」顔をしている右の彼(Sくん)も、近々ブログ記事を書くと思いますのでご期待ください!
彼の名前はその時にわかるはずです(•̀ω•́ )

 

f:id:Yoko_Takaki:20160916080637j:plain

二人で写真を撮ろうと思ったら裏切られたSくん

 

ゆかいななかま大募集


普通のエンジニアブログとは一味違う記事を意識して書いてみたのですが、
如何でしたでしょうか?(•̀•́)و

開発チームの雰囲気を感じて頂けでしょうか?

「もっとネオキャリアについて」知りたい!という方は、

弊社のHPや求人情報をチェックして下さい!

www.wantedly.com