【ちょっと早いけど】2018年のLaravelまとめ

こんにちわ、ITプロパートナーズのエンジニアのくまモンエンジニア(@miyakey7)です。

Laravel駆動転職(LDJC)により今年1月にITプロパートナーズにジョインしました。

初めて実務でLaravelを使った開発を行い、あっという間に11月になってしまいました。

 

そうですね、気になりますよね?

2018年、Laravelにはどんな変化があったのか気になりますよね?

 

今回は少し早いですが2018年のLaravelに関する出来事や気になる変更点などを自分なりにピックアップして書きます!

(11月以降は随時追記していきたいと思いますw)

  

 

2018年1月のLaravel

Laravel 5.5.29→33

①ModelにqualifyColumn()メソッドが追加されました

このメソッドは引数で指定したカラム名をモデルのテーブルで修飾します。

// 元々の記述
$this->getTable().'.'.$this->getKeyName();

// qualifyColumnを使った記法
$this->qualifyColumn($this->getKeyName()) ;
// 使用例      $article->qualifyColumn('title'); // -> articles.title

使った事無いという方、Eloquent内でしっかり動いております!

気になる方は以下を確認ください!

github.com 

②query builderにdoesntExists()メソッドが追加され...マジか

そうですねexists()はよく使うのですが5.5.33より、doesntExists()が追加されております!

ちなみに一瞬notExists()という名前になりそうでした。 

 

if( !User::where('email', 'user@example.com')->exists() ){
}



if( User::where('email', 'user@example.com')->doesntExists(){
}

github.com

③ModelのwithTrashed()メソッドに引数指定が追加されました

withTrashed()メソッドは論理削除したデータを取得データに含める場合に使用します。

今回の変更により、元々以下のようにフラグで切り分けて使っていたのを

public function index(Request $request)
{
    $query = User::query();

    if ($request->showDeleted) {
        $query->withTrashed();
    }

    return $query->get();
}

下記のようにwithTrashed()メソッドの引数に依存して使用する/しないを切り替える事が出来ます。

public function index(Request $request)
{
    return User::withTrashed($request->showDeleted)->get();
}

 

2018年2月のLaravel

Laracon Online 2018

「Laracon Online 2018」が開催されました!

Laravelのオンラインカンファレンスは毎年開催されています!

今年の目玉はやはり、Laravel 5.6のリリースでした!

laracon.net

Laravel 5.6 Release

①log機能が改良されました

logging.phpが追加され、より細かい設定を行う事ができるようになりました。

カスタマイズで簡単にslackにログを通知することも出来ます。

 

チャンネルに「slack」を指定

'stack' => [
    'driver' => 'stack',
    'name' => 'channel-name',
    'channels' => ['single', 'slack'],
],

 

チャンネル設定で「slack」の設定を記述。下記の場合クリティカルレベルのログのみslackに通知する事が出来ます。

'channels' => [
   'slack' => [
        'driver' => 'slack',
        'url' => env('LOG_SLACK_WEBHOOK_URL'),
        'username' => 'Log通知',
        'emoji' => '',
        'level' => 'critical',
    ],
],
②Eloquentの日付データのキャスト機能追加されました

$castsを定義することで取得時指定したデータ形式にキャストされます。

protected $casts = [
    'birthday' => '誕生日:Y-m-d',
    'logined_at' => 'datetime:Y-m-d H:00',
];
③Blade Componentにエイリアス名が付けれるようになりました

resources/views/components/alert.blade.phpに以下のような記述をします。

<div class="alert alert-danger">
{{ $slot }}
</div>

AppServiceProviderのbootに以下のような記載をします。

Blade::component('components.alert', 'alert');

以下のように記述することが出来ます!

@component('alert')
    <p>アラートメッセージ</p>
@endcomponent

// 以下のような省略も出来ます
 @alert <p>アラートメッセージ</p> @endalert
④bootstrap4対応になりました

時代は4ですね。

⑤署名付きURLの発行がURL Generationの機能に追加

使い方は以下にまとめてあります!

qiita.com

Under Construction Package(4桁数字認証用パッケージ)

4桁数字認証を簡単に実装できるパッケージが公開されました。

5.6以降から使えます。

laravel-news.com

 使い方は以下にまとめてあります!

qiita.com

 

2018年3月のLaravel

Laravel 5.6.7→13

MySQLのsounds likeがサポートされました

以下の書き方で利用できます。

$query->where('name', 'sounds like', 'John Doe');
②@dumpがbladeに実装されました

元々あった@ddとの違いは、処理が止まらないことですね。

github.com

③Mailablesによるメールへの添付ファイル設定が簡単に行えるようになりました

④query builder のメソッドにが追加されましした

orWhereDay()orWhereMonth()orWhereYear()が追加されました。

\App\User::whereDay('updated_at', '=', 1)
    ->orWhereDay('updated_at', '=', 2); 
⑤bladeに@elseauth()@elseguestが追加されました

bladeでの切り分けが容易にできます。

@auth('administrator')
<p>管理者</p> @elseauth('standard')
<p>一般ユーザー</p>
@endauth

@guest('user')
<p>ゲストユーザー</p> @elseguest('subUser')
<p>サブゲストユーザー</p>
@endauth
⑥セキュリティパッチがリリースされました

Laravel 5.6.15と5.5.40が対策版のバージョンになります。

laravel-news.com

Laravel meetup Tokyo Vol.10開催

10回目で初参加しました。とても勉強になりモチベーションが上がる楽しいmeetupです。

laravel-meetup-tokyo.connpass.com

2018年4月のLaravel

Laravel 5.6.16→19

サブクエリ用のメソッドが追加されました!

joinSub()leftJoinSub()rightJoinSub()、が追加されました。

元々は以下のようにDB::raw()を使うやり方をしていました。

$query = DB::table('subtable');
$sql = '(' . $query->toSql() . ') as "sub"';
DB::table('table')->join(DB::raw($sql), ...);

 それが以下のように書けるようになりました。

DB::table('table')->joinSub('select * from "subtable"', 'sub', ...);
DB::table('table')->leftJoinSub(function ($q) { $q->from('subtable'); }, 'sub', ...);
DB::table('table')->rightJoinSub(DB::table('subtable')->where('foo', 'bar'), 'sub', ...);

Laravelのdocsに私のプルリクが通った

これはビッグニュースですね!

OSS活動もっとやりたかったですが、結局今年はこれだけになるかも...

github.com

2018年5月のLaravel

Laravel 5.6.20→24

abort()の引数にresponseを設定でHttpResponseExceptionを返すようになった

 ②EloquentにloadMissing()メソッドが追加されました

リレーションがloadingしてない時だけloadingしてくれます。

public function format(Book $book)
{
    $book->loadMissing('author');

    return [
        'name' => $book->name,
        'author' => $book->author->name
    ];
}

2018年6月のLaravel

Laravel 5.6.25→26

①query builderにjson形式のデータに対するメソッドが追加されました

whereJsonNotContains()orWhereJsonNotContains()、が追加されました。

含まれない条件のandとorですね。

$query->whereJsonNotContains('options->languages', ['en']);
$query->orWhereJsonNotContains('options->languages', ['en']);
②ModelにunsetRelation()メソッドが追加されました

メソッド名通り、リレーションをunsetしてくれます。

③AuthにhasUser()メソッドが追加されました

動作的にはAuth::guard()->user()をパブリックに使えるようにしたものです。

github.com

 Laravel Event

Laravelのイベントを告知するサイトが出来ました。

世界中のイベントが載っています。

Laravel Events

 

Laravel Live UK

UKでカンファレンスが開催されました。

世界中で開催されていますね。

laravellive.uk

 

2018年7月のLaravel

Laracon US 2018

今年のLaracon USはシカゴで開催されました!

Laraconのサイトは2019仕様に既に変わってしまいましたが

2018年のセッションはYoutubeに再生リストで上がっており見ることが出来ます。

(Vue.jsのEvan氏もセッションに参加しております。)

www.youtube.com

 

私は開催当日、日本で早朝からtwitterと動画配信を追いかけてましたが、

クラシコムのエンジニアの方がLaracon US参加レポートを書かれています。

日本人の参加者がほとんどいないため、会場の雰囲気など大変参考になります!

note.mu

Laravel Nova発表

Laravel Novaは公式のLaravel管理画面作成用パッケージになります。

サイト単位の有料ライセンスパッケージになっており、サポート付きかそうでないかで

料金が違います。

詳細は以下のページで確認できます。

Laravel Nova - Beautifully-designed administration panel for Laravel

 

弊社でも8月にリリースしたGraspyというサービスで早急に管理画面が必要になったため、発売開始直後にサポート付きライセンスを購入致しました。

そこでの知見はまたこのブログで展開できればと思います!

graspy.jp

2018年8月のLaravel

Laravel 5.6.30→34

セキュリティパッチのリリースがありました

Laravel 5.6.30とLaravel 5.5.42がセキュリティ対策版のリリースバージョンになります。

laravel-news.com

Laravel EU 2018開催

laracon.eu

2018年9月のLaravel

Laravel 5.7 Release

ディレクトリ構成の変更

こちらが5.6までの構成です。

/resources
├── assets
│   ├── js
│   └── sass
├── lang
│   └── en
└── views

以下が新しいディレクトリ構成になります。集約されました。

/resources
├── js
├── lang
├── sass
└── views
②エラーメッセージがわかりやすくなりました

これメッチャ良いですね。Laravelのエラーメッセージはプログラミング初心者等には

かなり厳しい感じはしていました。

③ページネーションの中央のリンクに対するサイドの数を設定出来るようになりました。

デフォルトは3になります。

// [1][2][3]...[6][7][8]【10】[11][12][13]...[20][21][22]
User::paginate(10)

// [1][2][3]...[9]【10】[11]...[20][21][22]
User::paginate(10)->onEachSide(
1);
④Mail Localizationが簡単に出来るようになりました
  • Mail::to($user)->locale('en')->send(new OrderConfirmation($order))
  • Mail::to($user)->locale('ja')->send(new OrderConfirmation($order))

Laravel meetup Tokyo Vol.11開催

2回目の参加になりました!

発売前のLaravel本の紹介などもあり、とても充実した内容でした。

laravel-meetup-tokyo.connpass.com

Laravel本「PHPフレームワーク Laravel Webアプリケーション開発 」発売

これまでに無かった一つレベルの上がった中級者以上向けの本になるかと思います。

実践パターンが豊富で、非常に参考になる1冊でした。

www.amazon.co.jp

2018年10月のLaravel

Laravel 5.7.9→5.7.12

CollectionにloadCount()が追加されました

withCount()は元々あったのですが、loadでリレーションする際にはメソッドが用意されていなかったのが今回追加されました。

$events = Event::latest()->with('eventable')->paginate();

$groups = $events->map(function ($event) {
    return $event->eventable;
})->groupBy(function ($eventable) {
    return get_class($eventable);
});

$groups[Post::class]->loadCount('comments');
$groups[Comment::class]->loadCount('hearts');

return new EventIndexResponse($events); 

Laravel Telescope発表

Laravel Telescopeは新しいLaravelのデバッグ用アプリです。

わかりやすいGUIを兼ね備えており、Laravelの処理全般を確認することが出来ます。

mattstauffer.com

Laravel AU 2018

オーストラリアでのカンファレンスが開催されました。

これに伴い、Laravelの作者のTaylor Otwellが日本に来日して

観光を楽しんでいたようです。

laracon.com.au

 

 

 

2018年11月のLaravel

Laravel 5.7.13

CollectionにwhenEmpty()whenNotEmpty()unlessEmpty()unlessNotEmpty()メソッドが追加されました

whenEmpty()の処理はコレクションが空の時にコールバックが呼ばれます。

$collection = new Collection;

$collection->whenEmpty(function ($collection) {
    return $collection->push('test');
});

$this->assertSame(['test'], $collection->toArray());

unlessEmpty()の処理はコレクションが空でない時にコールバックが呼ばれます。

$collection = new Collection;

$collection->unlessEmpty(function ($collection) {
    return $collection->push('abcd');
});

$this->assertSame([], $collection->toArray());

2018年12月のLaravel

Laravel Advent Calendar

12月といえば、Advent Calendarですね!

今年は#2まで出来ております。

私は今年初参戦ですが何か役に立つ記事を書ければと思います!

qiita.com

qiita.com

2019年のLaravel

Laravel JP Conference

来年2月に、日本初のLaravelカンファレンスが開催されます!

ララベラー全員集合間違いなしですね。

conference2019.laravel.jp

Laracon VII (Laracon US 2019)

来年のLaracon US 2019の開催は既に発表されております!

今年はシカゴでしたが来年はNYです!行きたい!

Laravel 5.8

5.8の話も少しずつ出てきていますね。

①Carbon2を使えるようになる

ついにCarbonのv2を選べるようになることで、immutableに扱えるようになります!

(既にmutableな使い方に慣れてしまっていますが...)

laravel-news.com

②Laravel mixも進化するみたい

テスト中にLaravel Mixをオーバーライドすることが出来るみたいです!

timacdonald.me

該当のPRはこちらです。

github.com

Laravel 6 ?

Laravel 6やLaravelの今後を知るには、Laravelのアイディアを纏めた以下のリポジトリのissuesを読むのが一番だと思います。

github.com

以前はLaravel6のwishlistも有りましたが、今は閉じられています。

github.com 

Laravelは5系の完成度が高く、LTSもあるためか、メジャーバージョンのアップデートサイクルが当初の想定よりずれています。(特に悪いことではないと思います) 

Laravel4→5で実施したようなチャレンジングな進化を6にも期待したいですね。

 

長くなりましたが今年のLaravelをまとめてみました。 

こうしてみると色んな事があった盛り沢山な1年だったと思います。

来年もLaravelの勢いが続くように少しでも貢献できればと思います。

最後に

ITプロパートナーズでは大半のサービスのサーバーサイド開発をLaravelを利用して行っています。

この記事を最後まで読んだそこのあなたは相当なララベラーだと思います!

一緒にLaravelやりませんか?

もし興味があれば気軽にオフィスに遊びに来てください!

 

www.wantedly.com

 

www.wantedly.com

LaravelでつくったAPIをADRならぬADM(Action-Domain-Model)にリファクタリングした話

 

概要

今回はGraspyというキャリア形成プラットフォームGraspyの開発エンジニアの

もり(@frostndays)とよね(@keiuwk0614)が執筆しました。

 

graspy.jp

Graspyの技術スタックとして

フロントエンドはNuxt.js、サーバサイドはLaravelを使用しております。

今回は、LaravelでつくったAPIをβ版リリース直後にリファクタリングした経緯や

そのメリット、デメリット等を紹介させて頂きます。

 

リファクタリングした経緯

 リファクタリング前は、一般的なWebアプリケーションで採用されることが多いMVCパターンを採用していました。

MVC(Model View Controller)とは、リクエストに応じて処理を振り分けるコントローラ、画面やレスポンスなどの情報を出力するビュー、ビジネスロジックをモデルとして、3つの責務に分割したアプリケーション設計パターンです。

 

 しかし、開発していく中で開発者のファイルの切り出しの粒度であったり、ControllerとModelの処理の責務が煩雑になり、Controller、Model共に肥大化していき、所謂fat controller、fat modelになっていました。

 これを解決するために、controllerとmodelの間にservicesを挟み、controllerに書かれていたビジネスロジック等を、servicesに切り出すことも考えましたが、結論それを行ってもcontrollerの処理がservicesに移行するだけで、ファイルの肥大化の根本的な解決になりませんでした。

 

ADR(Action-Domain-Responder) 

 そこで、今回参考にしたのは、最近発売されて話題になっていたLaravel本

PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応

PHPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応

  • 作者: 竹澤有貴,栗生和明,新原雅司,大村創太郎,丸山弘詩
  • 出版社/メーカー: ソシム
  • 発売日: 2018/09/26
  • メディア: 単行本
  • この商品を含むブログを見る
 


に記載してあり話題になっていたADRというAction、Domain、Responderの3つの責務から成り立つアプリケーション設計パターンを参考にすることにいたしました。

 

f:id:itpro_yonekawa:20181110195401p:plain

ADR(Action-Domain-Responder)


 

ADRパターンとは
A : Action 

 MVCで言う所のControllerに当たるレイヤー。Controllerが複数のActionに対応するのに対して、1Action1メソッドとして独立させ、1つのActionとルートを対応させることで複雑化を防ぎシンプルにHttpリクエストが扱える。


D : Domain

 モデルとドメインの2つに大きな違いはなく、レスポンダが出力するためのビジネスロジック等を記述する。モデルの代わりにドメインを当てはめることで、データベース=モデルの概念から、ドメイン駆動設計パターンを考えてもらうことを意図している。


R : Responder

 レスポンダは、モデルから返却される値によって表示方法の変更、HTTPステータス変更など、プレゼンテーションロジックをコントローラ・アクションから切り離し、コンテンツ情報だけでなく、HTTPレスポンスを構築する処理を担当する。

 

 

ADRならぬADM(Action-Domain-Model)


しかし、今回はLaravelはAPIサーバーとしてしか使用していません。そのため、ADRパターンのResponderに値するレイヤーではviewをreturnしたりするような処理を行なっておらず、Jsonをreturn するだけのシンプルな構造になっていることから、Responderレイヤーは導入しませんでした。また、Modelディレクトリの移行も既存APIリファクタリングの難易度が高かったため残すことにし、下記のようなADM(Actions-Domain-Model)のアプリケーション設計パターンを採用することにしました。

 

f:id:itpro_yonekawa:20181110195322p:plain

ADM(Action-Domain-Model)


A : Action
- 上記ADRのaction同様に1Action1メソッド


D : Domain
- service : ユースケースビジネスロジック
- repository : Modelからデータ取得処理、データ加工


M : Model
- 各テーブルの定義情報、リレーションのみ、ロジックは書かない


これにより

Action : Domainのみ知っている
Domain(service) : Repositoryのみ知っている
Domain(Repository) : Modelのみ知っている

という以下のような依存関係にしました。
action → Domain(Service) →Domail(Repository) → model

 

 

リファクタリングしたことによるメリット、デメリット

 

メリット

問題となっていた一つのファイルの肥大化が抑えられ、整理された小さな機能の集まりとして、それぞれの責務が明確されコードの可読性が上がった。

 

デメリット
1Action1メソッドのためファイル数が多くなり、それに伴いコード量も比例して増えてしまう。ドメインをどの粒度で分けるか悩む、あまり大きな括りで分けると結局serviceが肥大化してしまう。

 

MVCからADMにリファクタリングしてみて

 

 今回は、β版リリース直後にAPIリファクタリングをするべきかそうでないか、迷いました。しかし、今後2次リリースに向けてもっと機能が増えて開発してから行うよりも、今やらなければ後からもっと技術的負債が残ると感じ、今後のメンテナンスや保守運用を考え、リリース直後にリファクタリングすることを決め、しっかりリファクタリングスケジュールを組んで実施しました。

 今回ADRを参考にADMというアプリケーション設計パターンにしたのですが、私たちのように元々MVCで作ってしまいModelを削除しDomainに切り替えるのが難しくなってしまっている方には、そこまでリファクタリングのリスクもなくController、Modelの肥大化が抑えられるので、ADMを是非参考にしてみてください。

 

最後に

 

 株式会社ITプロパートナーズは、Laravel/Vue.js(Nuxt.js)で開発したいエンジニア、デザイナー絶賛募集中です。少しでも興味のある方は、DMでもWantedlyでもお気軽にご連絡頂けますと嬉しいです。お待ちしております。

 

www.wantedly.com

 

www.wantedly.com

 

 

 

 

 

Vue Fes Japan 2018 ゴールドスポンサーとして協賛しました

こんにちは。

株式会社ITプロパートナーズでエンジニアをやっている米川です。

 

弊社は、「自立した人材を増やし、新しい仕事文化をつくる」というビジョンのもとで、IT・Web 業界の起業家やフリーランスで活躍するエンジニア・クリエイターに週2日からの案件を紹介するプラットフォーム「ITプロパートナーズ」(https://itpropartners.com/)を運営しています。

その他にもマッチングサイト構築パッケージの「PIECE」、教育支援サービスの「ITプロカレッジ」、新卒採用サービスの「intee」という事業を展開しています。

 

また、この度中途向けの教育型転職支援サービスGraspyを2018年8月末にリリース致しました!

graspy.jp

技術スタックは、フロントサイドはNuxt.jsのSSR、サーバサイドはLaravel5.5を使用しております。

 

f:id:itpro_yonekawa:20181103134928p:plain

 

 弊社のサービスでは、Vue.jsを積極的に採用しており、Vueのコミュニティにも貢献していきたいと思い、vue fes japan2018のゴールドスポンサーとしてCTO1名、PM1名、エンジニア2名で参加してきました。

vue fes japanとは、日本で初めて開催されるVue.jsのカンファレンスです。

vuefes.jp

 

弊社ブースでは、開発したエンジニアがブース担当していたため、お立ち寄り頂いた方たちと開発チーム体制や、どのようなサービスをVueで開発しているか等、技術的な深い話も沢山することができ、とても有意義な時間を過ごせました。中には、その場でGraspyに興味を持ってくださり登録してくださる方もいました!ありがとうございます!

 

f:id:itpro_yonekawa:20181103150404j:plain

 

弊社は毎月第3土曜日あたりにProLaboというもくもく会を開催しており、通りすがる方々に「あ!プロラボさんですね!」とか「プロラボ参加したことあります!」という声をありがたいことに沢山頂き、急遽モニターの半分をconpassのProLaboのページを表示するようにしました!

ProLaboの画面をモニターに表示するようにしてから、参加者の方々が沢山ブースに脚を運んでくれるようになりました!恐るべしProLabo。。。

 

f:id:itpro_yonekawa:20181103150505j:plain

 

セッションについて

Atomic Design のデザインと実装の狭間

www.slideshare.net

 こちらのセッションでは、エンジニアとデザイナーが同じ目線でコンポーネントを設計するのは難しい、デザイナー目線とエンジニア目線の利点と難点が凄く分かり易かったです。弊社でもAtomic Designを採用し業務委託で入られているデザイナーが作ったvueファイルをエンジニアがコンポーネントの分割をしています。

弊社の開発体制では、デザイナーは業務委託で入られている方1名で、コンポーネントを分割しエンジニアリングしてからデザイナーの方が作業することもあったり、先にデザインを作ってもらってからエンジニアが作業したり、その辺は柔軟に対応してもらっています。

そもそもデザイナーがやっていることとは、「UI/UXのデザインであり、もっとも大事なのはユーザーの反応、コンポーネントはそもそもエンジニアリングの概念」というのは、今まで開発してきて意識してこなかったことでした。このスライドの最後に書いてある通り、まだまだ手法はみんな手探り状態であるということ、デザイナーがデザインに専念できる環境をつくってあげれるようにエンジニアリングでサポートしていけるように、デザインツールとかこれから覚えていけなければならないなとか考えさせられました。

 

f:id:itpro_yonekawa:20181103161821j:plain

 

 

参加者メンバーの所感

CTO 柳澤

 ITプロパートナーズとしては久しぶりのブース出展となりました。
graspyパーカーやステッカー、配布するフライヤーなど社内メンバーが惜しみない協力をしてくれたことに感謝です。
やはりエンジニアが多く来場するイベントなので、昔の同僚や知人と会場で再開したりして刺激もありました。
ブースを覗いてくれた人達とも楽しく会話できて、graspyを知ってもらうよい機会になったと感じています。
ありがとうございました。

 

PM 中丸

非エンジニアとしてドキドキしながら参加してきました笑 実際にブースで参加者の方や企業の方とお話をする中で、興味を持って頂き「面白いね」と言っていただけたことはサービスに対する生の声を聞くという意味で非常に良い経験でした。Graspyをより良いサービスにして広めていきたいと思います!

 

エンジニア 森山

 Vue作者のEvan Youさんから直接Vue3.0の話を聞くことができ
TypeScriptやNativeなど、Vueの今後のさらなる可能性を感じることができました!
また、他社のVueを使用しているプロダクト開発者の方とも交流ができたのでいい刺激になりました

 

エンジニア 米川

 ブース出展準備で朝早かったり、慣れない名刺交換や営業トークみたいなのをして正直疲れたけど、貴重な経験をさせて頂くことができ凄く楽しかったです!Vueエンジニアの方々とお話できたのは勿論、協賛企業同士の交流もあり、Graspyを多くの方に知ってもらえる機会になり良かったです。

Vue Fes Japanのオーガナイザーやスタッフの皆さま、関係者の皆さま、ありがとうございました!

 

最後に

 株式会社ITプロパートナーズは、Laravel/Vue.js(Nuxt.js)で開発したいエンジニア、デザイナー絶賛募集中です!!少しでも興味のある方は、DMでもWantedlyでもお気軽にご連絡頂けますと嬉しいです。お待ちしております!

www.wantedly.com

 

www.wantedly.com

 

f:id:itpro_yonekawa:20181103150310j:plain

 

毎月恒例!ProLabo(プロラボ)もくもく会を@渋谷10月27日(土)に開催しました! 

こんにちは! ITプロパートナーズ(https://itpropartners.jp/)インターン栗岡です!

普段は、Laravelで自社サービスの開発をしたり、新卒採用関係の業務をやっています。

今回は、先月開催された弊社主催のもくもく会についてレポートして行きます!

ではでは、スタートです〜

 

続きを読む

技術ブログをはじめました

f:id:channaka0531:20181106124407p:plain

皆さん、初めまして!
本ブログの初エントリーを書かさせて頂く
株式会社ITプロパートナーズのちゃん(@channaka0531)と申します。

 この度ITプロパートナーズの最新技術を活用した取り組みを皆さんに知ってもらう為に技術ブログを始めました。
弊社のエンジニアやデザイナーが社内で培った技術的知見や課題、社内の開発体制、弊社運営のイベントやカンファレンスのレポートなど 多岐に渡って技術に関連する情報を発信していきます。

 ▪️ITプロパートナーズとは

簡単にITプロパートナーズについてご紹介します。
弊社は「自立した人材を増やし、新しい仕事文化をつくる」をビジョンのもと、
起業家支援を中心とした下記の複数サービスを展開している企業です。

 ・ITプロパートナーズ事業(起業家・フリーランス支援事業)https://itpropartners.com/
・ITプロクラウド事業(在宅ワーカー支援事業)https://crowd.itpropartners.com/
・ITプロカレッジ事業(オンラインPG教育事業)https://itprocollege.com/
・intee事業(新卒向け就職支援イベント事業)https://intee.jp/student/
・Graspy事業(キャリア育成プラットフォーム事業)https://graspy.jp/

 当ブログを見て頂いた方のお役に立てる様なコンテンツを作っていきたいと思います!

 ITプロパートナーズでは、一緒にサービスを開発してくれる仲間を募集しています。
ご興味がある方は、以下URLよりご応募ください!

www.wantedly.com

www.wantedly.com