社員募集
株式会社Abby エビイ では現在、社員を募集しています。
会社紹介
弊社は、少数で頑張っている会社です。 qiita.com
仕事内容としましては、箱庭ゲームの開発がメインです。海外向けのシステムの開発もやっていますので最近は海外出張が増えてきています。
今回の募集は箱庭ゲーム開発とシステム開発と両方になります。
募集要項
東京本社でプログラマを募集しています。 勤務地は中目黒になります。来月には引っ越しが決まっていますが、引越し先も中目黒です(駅から2分)
iOS向けアプリもJavaで開発しているのでJavaの開発経験がある人を特に必要としています。
とはいえ、Java
は必須条件としていません。他に得意なプログラム言語があればそれで構いません。やる気重視です。
開発では、IntelliJ
、AndroidStudio
、 NetBeans
、Eclipse
またはエディタを使っており開発環境は各自自由に決めて下さい。
うちのCTOは、天邪鬼なもので Emacs
で Java
開発するために Emacs
用の開発環境を自作しています。完全にやり過ぎです。
github.com
Javaの開発基盤には libGDX
を採用しており、UIに関わる部分はJava + libGDX で開発することになります。
Swift
や vue.js
での開発もあります。
今月からは Unity
の勉強会を社内で始める予定ですので Unity
に興味がある方も是非お願いします。
サーバ側の処理は全て Go
で開発していますので、Java
と Go
を書きたい!という方は是非連絡してください。
開発のやり方としては、Slack
や Skype
でやり取りしながら、Backlog
というタスク管理サービスを利用してプロジェクトを進めます。
勤務時間に関して、定時を 10:00〜19:00 と定めていますが各自にスケジューリングは任せていますので、自宅作業だったり私用を済ませて午後から出社したり自由度はとても高いです。
服装については、特に決まりはありません。
打合せはオンラインにて Google Hangout
か Skype
で完結しますし、もしお客様との対面での打ち合わせが必要になった場合は私が行きますのでスーツは不要です。
一緒に開発をしてみたい方は、info@abby.co.jp にメールするか TwitterやFacebookで私(@yone098)までDMなどで連絡をしてください。
中目黒にフラっと立ち寄る感覚で会社に遊びに来てもらえるだけでも嬉しいです。
何卒よろしくお願い致します!
プログラミングHHVM Hack 執筆しました
こんにちは、5月なのに真夏のように暑いですね🌞本日発売のプログラミングHHVM Hackという本を執筆しました
以前、Hackがリリースされた直後に出した本よりもボリュームが多く300ページ近い量になっていますのでHHVM Hackに少しでも興味がある方は是非手にとって読んでみてください。 そして、そろそろPHPからHHVMに移行してみようかなという方は是非実践してみてください。
Amazon Kindle
- 作者: 米林正明
- 出版社/メーカー: 技術評論社
- 発売日: 2017/05/22
- メディア: Kindle版
- この商品を含むブログを見る
Gihyo Degital Publishing
書籍目次
1章 プログラミングHackとその環境構築 1.1 プログラミングHackとは 1.2 環境構築 2章 Hackの特長と構文 2.1 Type Annotations(型注釈) 2.2 Type Inference(型推論) 2.3 Casting 2.4 Refining 2.5 Advanced Rules 2.6 Summary Table 3章 Hackの機能 3.1 Collection 3.2 Shapes 3.3 Tuples 3.4 Enums 3.5 Generics 3.6 Type Aliase 3.7 Lambda 3.8 Callable 3.9 Async 3.10 XHP 3.11 Attributes 3.12 終わりに 4章 ツール 4.1 hh_server 4.2 hackificator 5章 Extension 5.1 PHP and C++ extensions おわりに
HHVM Hack
これからHHVM Hackがもっと盛り上がっていったら良いなと思っていますので、PHPの皆さんと一緒にHHVM Hackも盛り上げていきたいなと思います。よろしくお願いします。
Java開発におけるErrorProneのススメ
こんにちは、今シーズンのNBAもGSWの試合は全試合観てる米林です🏀 今年は毎試合満員御礼のOracleアリーナに行って観戦したいなぁと思いつつカリフォルニア州オークランドの人たちはOracleがデータベースの会社って知ってるのかどうか毎回気になっています🏀
うちの会社ではJavaの開発において、Error Prone
を積極的に取り入れている。
その理由はCTOのmopemopeが入れろって怖いから、ただそれだけである。
実際のところ導入して損は無いので皆さんも是非導入を検討して頂きたい。
Error Prone とは
Error Prone
とはGoogleが公開していて、githubに記載されている説明のとおり “Catch common Java mistakes as compile-time errors” そのままである。
コンパイル時にエラーが起きそうなところははじいてしまおうという素敵なものだ。
Error Prone
は Bazel, Maven, Ant, Gradle で動作します。
Java開発者の方に馴染みのある FindBugs のようなものだと思ってもらえると理解は早いと思います。
現在、私が開発しているプロジェクトでは Gradle に組み込んで IntelliJ から実行していて Error Prone
のエラーをクリアしないと実行が出来ないため、エラーを直さないと CTO に怒られる以前に実行出来ないためエラーがある状態では業務に支障をきたしてしまいますので強制的にエラーは排除する必要があります😢
インストールなどは公式ドキュメントを見てください。イマドキのJavaの開発であれば、ほぼ Gradle プロジェクトで開発されていると思うので、Gradleに組み込んで実行するまでは3分もあれば確認出来るかと思います。私が自身で作ったプロジェクトに組み込んだ際には既存の build.gradle に以下を追加しただけです。
apply plugin: 'net.ltgt.errorprone' repositories { mavenCentral() } configurations.errorprone { resolutionStrategy.force 'com.google.errorprone:error_prone_core:2.0.14' }
bugpattern
バグパターンはエラーや警告などいくつかに分かれています。 こちらにバグパターンが一覧化されています。そこそこ数が多いですが、色々みていくと自身非常にためになったのでJava開発者の皆さんは是非みてみてください。
バグパターンは、それぞれのサンプル毎に Positive examples
と Negative examples
があります。英語って難しいですね、どっちが正しいのか最初理解に苦しみました。
バグパターンの一例ですが、ArrayToStringというものがあり、配列をそのまま toString
している箇所はNGとなります。
githubにexampleを置いておくのでcloneしてGradleでbuildしてみてください。エラーが以下のように表示されるので、Main.java を直しながら確認してみると分かりやすいと思います。
$ git clone https://github.com/yone098/error-prone-example.git $ cd error-prone-example/ $ gradle clean run :clean :compileJava /Users/yone098/p/error-prone-example/src/main/java/example/Main.java:17: エラー: [ArrayToString] Calling toString on an array does not provide useful information System.out.println(nameArray); ^ (see http://errorprone.info/bugpattern/ArrayToString) Did you mean 'System.out.println(Arrays.toString(nameArray));'? エラー1個 :compileJava FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileJava'. > Compilation failed with exit code 1; see the compiler error output for details. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. BUILD FAILED Total time: 5.081 secs
custom plugin
plugin としてカスタムチェックを追加することが可能です。 BugCheckerを継承して、MethodInvocationTreeMatcherを実装しプラグインを作成します。
@AutoService(BugChecker.class) // the service descriptor @BugPattern( name = "MyCustomCheck", // ... ) public class MyCustomCheck extends BugChecker implements MethodInvocationTreeMatcher { @Override public Description matchMethodInvocation(MethodInvocationTree tree, VisitorState state) { // TODO: } }
Gradleで利用するには
configurations { annotationProcessor } dependencies { annotationProcessor project(':custom-checks') } tasks.withType(JavaCompile) { options.compilerArgs += [ '-processorpath', configurations.annotationProcessor.asPath ] }
詳しくは、Plugin Checksをチェックしてください。
最後に
Java開発している方には是非、自身のプログラムを ErrorProne
で一度チェックしてみては如何でしょうか?
そして、株式会社Abbyでは絶賛開発者を募集しています。現在、募集しているプロジェクトでは CTO のもとで一緒に楽しく開発出来ますし、もちろん一緒に ErrorProne
も見守ってくれます。
気軽にtwitterやFacebookなどで声かけてください。そして一度弊社まで遊びにきてください!よろしくお願いします!
絶賛、社員募集しています😀Java + libGDX でのクライアント開発、サーバサイドは Go で開発します。web 開発は vue.js を使ったりしています。興味のある方は、まず弊社まで遊びに来てください🐋🐋🐋
— 米林 正明 (@yone098) 2017年1月12日