ホーム ブログ ページ 9

【新卒対談】アピリッツに入社決まって不安MAXだった僕たちのいま!

0

今春に新卒で入社しました須川、藤野、竹内、田中です。いま就活中の22卒23卒のみなさん、アピリッツの人間関係気になりませんか? 気になりますよね。僕たちも気になりました。ということで、アピリッツに入った新卒の4人が対談形式で紹介します!

プロフィール

東京生まれ東京育ち、自分のアイデアで新しいものを作りたいという思いで入社。
色んな飲食店に行くのが趣味です。

東北出身、高校卒業後沖縄でITを学び東京に就職しました。
フッ軽で口癖は「今でしょ」。

静岡県の情報系学部出身、3月から入社して内定者アルバイトをしてました。
Vtuberを見るのが趣味。

関西出身文系出身の新人webエンジニア唯一の女性というレアキャラ。
いろんな人と関わるのが好き。


今日は2021年新卒のWebエンジニア、僕を含め4名の対談ということでよろしくお願いします!

よろしくお願いします!

田中さんは関西出身ということですが、どうして東京に来たんですか?

都会で働きたかったのと、アピリッツがいいなと思ったら東京にあったからです。アピリッツは他の企業と比べて事業内容が多様で、面白そうだったんです。

特に東京ライフに憧れてとかじゃないんですね笑

アピリッツが魅力的だったので私も沖縄から来ちゃいましたよ笑


アピリッツの同期ってどんな感じ?


#内定から入社までに不安だったことは?

では、早速本題ですね。アピリッツに入社する前に不安だったことはありますか?

俺はみんなと上手くやっていけるか不安で入社式の前日なかなか眠れませんでした。

僕は内定者アルバイトで3月からいたんですけど、内定者アルバイトの時は同期が少なかったので心配でした。

#エンジニアのガチガチの理系ってしゃべらないんじゃない?女子ってやってけるの?

やっぱり女性が少ないって不安でしたか?

そうですね。エンジニアの人って難しい技術の話しかしないんじゃないかとか笑。コミュニケーションに不安がありましたね。

それは偏見ですよ笑。

偏見でしたね。技術以外のこともよく話しますし、仲良くなれました!

賑やかな人もいるし笑。楽しく働けてます!

#同期と仲良くなれた?

いろんな不安があったと思いますが、今はみんな仲良いですよね。

積極的にコミュニケーションを取るように心掛けたら、みんな優しくてすぐ仲良くなれてよかったです!

研修の後に人事の方が4人組を作ってランチに行く機会を設けてくれたのが印象的でした。「カフェ&バー ワンダーボウル」って店で「ポークジンジャープレート」を食べました。

カフェ&バー ワンダーボウル

美味しそうですね!そうやって段々とコミュニケーションする機会が増えていったことで打ち解けていきましたね。

私はCP(コマースプラットフォーム)部に所属しているんですけど、他のWebエンジニアと一緒に研修をしていまして、所属が違ってもわからないところとかあったら教えてくれますし、席も新卒同士で近くて話しやすいです。

研修とかでゲームの部署の人とも仲良くできていて、いろんな話が聞けて楽しいです。


先輩社員との関係は?


#メンター制度ってなんだ?って思った

同期とはそういう感じなんですね。先輩社員とはどうですか?

メンターさんとは良い感じですね。みんなは入社した時メンター制度って何か知ってましたか?

初日にメンターさんが誰か伝えられたんですけど、そもそもメンターさんって何って感じでした。

メンタルをケアしてくれる人かと思いました笑

わたしも知りませんでした。メンターっていうのは新入社員一人一人に付いていて、わからないことがあったら気軽に相談できます。アピリッツだと1〜3年上の先輩がメンターを担当してくれます。

#メンターさんとのコミュニケーションは?

メンターさんとの関係はどうですか?

わたしのメンターさんは歳も近いし、女性の方なのですごく話しやすいです。

僕はメンターさんと趣味が合うので、社内のカフェでよくコミュニケーションを取ってます。僕もメンターさんもVTuberをよく見ていて、推しの話をしたりします。

推しを語りあう二人

竹内さんはOJTもやっているので、メンターさんと話す機会も多いですよね。

そうですね。エンジニアの方なので技術的な話も聞いて、助けてもらってます。ミーティングの時間にはわからないことを質問しています。

リモートワークでもメンターさんとSlackで頻繁にコミュニケーションを取っています。

わたしはSlackで日報へのフィードバックを毎日もらってます。他にも週に3日、曜日を決めて面談をしてもらってます。直接喋ると自分でも気づかなかった疑問点が出てきたりして、いいですよね。


アピリッツの偉い人たち


#上司って怖くないの?関わりってあるのかな?

社員も400人近くいるので、上司とはあまり関わる機会がなさそうだと思ってました。

近くを歩いてたりしたんですけど、それでも話しかけるのは怖かったですね。

実際は研修や休憩時間などで話す機会があって驚きました。

優しい人が多い職場ですよね!

#アピリッツの偉い人ってどんな人がいるの?

メンターの方は歳が近いから話しやすいですよね。そしたら、歳の離れている部長さんとか他部署の方とはどうですか?

部長さんといえば、新卒の面倒を見てくれてる西脇さんがいますよね!

幅広い分野に精通している方なのでとても面白い話をしてくれます。

他にもGMさんや人事の方、社長付の広報の方、CIT(総務)の方など様々な方にお世話になってます

#上司とのエピソード

そうですね。特に印象に残ったエピソードとかありますか?

セキュリティ部門の上司は怖い人だったらどうしようと思ってたんですけど、初対面でも笑って話してくれて優しそうな人だなって安心しました。

入社したてのときは同期が優秀で焦りを感じていたんですが、人事部の部長が「焦らなくて大丈夫だよ」と優しく言ってくださったことが印象に残っています。

社長付の方は新卒をご飯に連れて行ってくれる会を開いてくれましたよね。

わたしは同期の女子と一緒に社長付の白石さんにご飯に連れていっていただきました。
とっても楽しかったです!

社長付きの白石さんとの談笑

おわりに


今日は対談ありがとうございました! アピリッツは優しい人が多くコミュニケーションをとる場もたくさんあるので、楽しく仕事ができます!

アピリッツはここで話した以外にも良いところがたくさんあるのでぜひエントリーしてみてください!

エントリーしてくれた方は面接で100%の力を出せるように、体調管理に気を付けて無理のない程度に頑張ってください!

就職活動不安なことも多いと思いますが、きっと自分にあうところが見つかるので大丈夫ですよ!

新卒もすぐに使えるVimコマンド10選_初級者向け

0

皆さん、vimは使ってますか?
サーバーを扱う人であればviやvim,neovimを使う機会は多いのではないでしょうか?
さて、そんな多くの人に利用されているvimですが覚えておけば便利なコマンドがいくつかあります。

vimでファイルの編集自体はできるようになったけど、vimのコマンドって難しそうでよくわかんない…

そんな方多いですよね?そんな方を対象にプラグインを入れてないvimでも使える実用的コマンドを自分用のメモを兼ねて記載していきます!
これを覚えておけばちょっとかっこいい自分になれること間違いなしです!!!

10位 : Tabの移動

:tabnext
:tabprevious

タブを移動

9位 : Tabの作成

:tabnew 〇〇.vim

ファイル名が〇〇.vimの新しいタブを作成
今のファイルを閉じたくないけど新しいファイル作りたくなる時ありますよね???
そんな時いちいちターミナルを新しく開いていますか???よければ、このコマンドを使ってみませんか?

8位 : 縦並びにペイン(画面)分割

:split

縦並びにペイン(画面)分割
同じ画面が二つに増えただけだと思いますか?その解釈は間違えているかもしれません。後で紹介するバッファ操作と組み合わせて新しく開いたペインでバッファ移動をしたら、とても強力なコマンドになります!

7位 : 横並びにペイン分割

:vsplit

横並びにペイン分割


分割したペインを移動する場合はControlキーとwを同時押ししてその後指を離し、h~lのどれかを押す。

キーバインド移動方向
<control + w> h今いる位置から左へ
<control + w> j今いる位置から下へ
<control + w> k今いる位置から上へ
<control + w> l今いる位置から右へ

6位 : ファイル一覧表示と移動

:e ディレクトリorファイル

ディレクトリ一覧をみたりファイルを開く
ファイルを開くとき視覚的にわかりやすい画面で開きたいですよね???
このコマンドを使うことでファイラーの代わりぐらいにはなるのではないでしょうか?

5位 : ターミナル画面の表示

:terminal

ターミナル画面が上部にでます
例えば今書いてるファイルをコンパイルしたい!
なんて時ありますよね???新しくファイルを開きますか???ファイルを一度閉じますか???
次からはこのコマンドを使えばいいのではないでしょうか?

4位 : バッファの移動

:bnext
:bprevious

バッファを移動(メモリ上で展開されているファイルを移動する)

残すコマンドも三つになりました。3位は外部コマンドを使うので少しややこしいです。

🥉3位 : 外部コマンドを用いた英語翻訳

vimでは「!」を使うことでターミナルなどで入力するコマンドなどを使うことができます。
この「!」は外部コマンドと組み合わせることでとても強力になるのでぜひ活用してみて下さい
例えば
translate-shellをインストールして

:%w !trans -b -sl=en -tl=ja

を入力すると英語のファイルを日本語に翻訳して表示してくれます

また、shift と v 同時押しから j,k で行範囲を決め
:w !trans -b -sl=en -tl=ja を入力すると
:'<,’>w !trans -b -sl=en -tl=ja
となります。
選択した範囲のみを英語翻訳してくれるのでとても便利でおすすめです。

栄えある2位に輝いたコマンド…このコマンドは本当に便利です!そして最も多くのvim入門者が最初に驚きと感動を与えられるコマンドなのではないでしょうか?
皆さんは何かわかりますか?

🥈2位 : 置き換え

:%s/〇〇/△△/g

ファイル内の全ての〇〇を△△に置き換える
これもめちゃくちゃ使います!
変数名のスペルを間違えてしまった!!!なんて時に非常に助かります!

さて…とうとう最後の一つになってしまいました…私が選ぶこれだけは覚えておきたい、vimのコマンド第1位は!!!

👑1位 : 強制書き込み

:w !sudo tee %

書き込み権限の無いユーザーでログインした時に、rootユーザーで書き込めるようにするコマンド
これめちゃくちゃ便利です!せっかくファイルを書き換えたのに書き込みの権限がなく一度出てrootに入り直しまた書き込む。なんて経験ありますよね???
:w !sudo tee %これ覚えとけばそんな二度手間なくなります!!!最高!!!!

※注意点です。rootユーザー権限は、編集してほしくない(あるいは編集時に影響確認が必要な)ファイルも書き換えてしまうので、注意が必要です。

いかがでしたか?個人的にはこれらのコマンドを組み合わせるだけで簡易的なIDEの代わりとして使うことができるので立ち上げたばかりのサーバーなどで活用しまくってください!
何よりこれらのコマンドを知ってるだけでちょっとかっこいいですよね(笑)

次回は、vimのおすすめプラグインなどを紹介しようと考えています。
vimはプラグインを入れることでバリバリ強力になります!
次回もぜひ見てくださいね!

参考にしたサイト
help – Vim日本語ドキュメント
Qiita Vimが本来もつ力を掘り下げる
Howpon Vim – 保存できないファイルを強制保存する方法【tee/sudoコマンド】
ターミナルやvimからgoogle翻訳を使う

新卒社員の1週間は大変さより楽しさが勝つ

0

はじめまして!21新卒の齋藤です。今回は新卒の私が
4月に入社してからの1週間、どんな業務をしていたのかを書いていきたいと思います。

なぜこの記事を書こうと思ったのかというと、
私が就職活動をしていた時に「新卒社員って入社してから何をするんだろう?」
「研修ってどんなことするんだろう?」と不安に思っていました。

同じ不安を22卒、23卒の就活生が抱えているのではないか
その不安を少しでも解消できればなと思い、書くことにしました!

研修はいくつかありますが、印象的だった研修3つをピックアップして書いていきます!

研修Topics

期待と不安の       入社式
ハラハラドキドキの    電話研修
覚えることが多くて大変な プログラミング勉強

入社式

入社式は4/1に実施しました。
式典なのでスーツを着ましたが、それ以外の日は私服を着ています。

入社式について詳しく知りたい方は、
“こちらの記事「2021年度 アピリッツ入社式、今年は対面で実施しました」”も見てみてください!

主な内容は……
午前に社長・役員の方々からのご挨拶、新卒1人ずつ抱負を発表しました。
式が始まる前にリハーサルをやるので、全体の流れを把握できます!
お昼ご飯はあらかじめ決められたグループに分かれて食べに行きました!

会社周辺のお店を人事の方にいろいろ教えてもらえるので安心です:)
インターン・アルバイトに参加していた方と一緒だと良いお店を案内してくれるかも?

会社周辺にはラーメン屋・カフェ・キッチンカーなどなど、
飲食店が色々あるので歩き回ってもいいかもしれません。

また新卒同士で行くので、仲良くなれる大事な時間です!いろいろ話をしておいた方がいいです!

午後からは、新卒社員のことを先輩方に知ってもらうために
新卒全員で自己紹介ムービーを撮影します。突然課題が与えられました。さらに1発撮りでした。

新卒の人数が多いため全員分みてもらえないかもしれないので、
どうしたら最後まで見てもらえるかを考え、新卒全員で意見を出し合って制作しました。

ここまでで入社式の予定は終わりです。

最後に自席に案内され、初めての退勤カードを押して退社です!
新卒社員の席は1つの区画に集まっているので、すぐに相談・協力ができる環境で良いです!
(座席のレイアウトについては、部署によって違う場合もあります)

同期の方と馴染めるかすごい不安でした。。。
ですがお昼の時間・新卒同士の席が近いので、大丈夫です!

ただ内定者アルバイトに参加していると最初の不安が軽減されるので、
参加していればよかったなと思いました。

新しい環境でうまくやれるか不安でしたが、
これから多くの経験ができると楽しみな気持ちでいっぱいでした!


電話研修

電話研修は3日間行われます。

電話研修の1日目・3日目は
電話の出方・電話の使い方・電話での言葉遣い・取り継ぎ方法など
基本的な電話対応のやり方を丁寧に教えていただきます。
用意された状況に合わせた応対も練習しました。

電話研修の2日目は
電話検定がありました。人事の方3人と電話をして適切な対応をできたらクリア。
3人の試験が無事クリアできたら本試験があります。
本試験をクリアすると、認定証がもらえて実際に電話をとることができます。

電話検定に合格すると↑の認定証がもらえます!

電話に出る機会がほとんどなかったので、
試験ではありましたが、緊張して手が震えました。。。

試験中に、実際の問合せ電話を受けた方もいたそうです。
電話をとるまでドキドキでした。

本試験後は実際に電話をとりはじめます!


リモート業務が増える中、どうして電話研修をするのか疑問を感じていましたが、
実際に電話対応をすることで電話研修の重要性に気が付きました。

電話対応では相手の要件を瞬時に聞き取り対応する力が必要であると感じました。
また電話を取り継ぐ際にすぐに対応できない場合があったりします。
そこで柔軟に臨機応変に対応する力も必要となってきます。

電話を繋ぐために、各部署の部長が誰なのか、各部署がどこにあるのか、
電話をかけてきた相手をどこの部署に繋ぐのが適切かなども知っておく必要があります。

その他にも、アピリッツがどんな企業さんと取引をしているのかを知ることができ、
他の部署で業務上あまり関わりのない方と軽くコミュニケーションが取れる利点もあります。

そのため電話研修は、様々な力を身につけることができ、
会社についての理解も深めることができるため重要なことだと感じました。

実際に電話を取ってみると、思っていたよりは難しくないです!
周りの方もフォローしてくれるので、安心して取れます。

先輩方は電話が取るのがとても速いので
負けないように積極的に取っていきたいです。

電話対応は、臨機応変に対応する力や聞き取り伝える力を
身につけることができて、業務でもこの力が大事になってくると思うので
頑張っていきたいです!


プログラミングの勉強

研修は午前中にやるのですが、午後はプログラミングの勉強をしています。
主にRubyとRuby on Railsの勉強をしており、参考書を使い個人で作業を進め、
分からないところは周りの人やメンターの方に相談しながら進めていきます。

プログラミング未経験の方が理解しやすいように
簡単な参考書が利用されているので勉強しやすいです。
この勉強を通して、基本的なプログラミングの書き方やWebアプリの作り方を勉強していきます。

私はRubyとRailsに触れたことはありましたが、
きちんと学習したことがなかったので、
理解できているところは飛ばしつつ、ひとつひとつ進めています。

全体研修と平行して進めていくのでスケジュール管理が大変です。


その他の研修

各管理部の説明、書類の書き方等
モラル&マナー研修
各部署の説明
外部の方が来られて社会人研修


今回は私が就活中に感じた疑問である、
入社後にどんな業務をしているのかについて書かせていただきました。

私は入社時に不安もたくさんありましたがそれ以上に、
新しい環境で新しい事ができる楽しみな気持ちでいっぱいです!

これを読んで……
22卒、23卒の就活生が抱えている不安が少しでも軽減されたら嬉しいです。

別の会社に入社した同じ21卒の方はどんな研修をやっていますか?
似た研修、またはもっと大変な研修をやっているんでしょうか。
新しい環境で大変だと思いますが、お互いに頑張っていきましょう!

BurpSuiteでのJSONパラメータやカスタムヘッダーの引き継ぎ方法について(Extension: CustomParameterHandlerのインストール方法と使い方)

0

コマースプラットフォーム部所属の大山大です。

【この記事の対象者】

BurpSuiteのRepeaterやIntruderを使用して、Webアプリケーションなどの脆弱性診断を行なっている方。

【目的】

POSTリクエストのJSONパラメータや、カスタムヘッダに設定されたCSRFトークンを、直前のレスポンスから引き継ぐ。
BurpSuiteのマクロ機能では、下記のようなJSONパラメータやカスタムヘッダのトークンを、レスポンスから引き継ぐことができない。
それを解決する拡張機能「CustomParameterHandler」を紹介する。

【制限事項】

本拡張機能は、スレッドで動作していないため、Intruder使用時のスレッド数は1、InteruderとRepeaterの並行作業はしないように。
実施した場合、期待した引き継ぎができない。
ターゲットした文字列の固定値への置き換え、例えばセッションIDの削除などはスレッドで使用しても問題ない。

【インストール方法】

1.ExtenderタブからBAppStoreを開きます。
2.右上の検索窓で「Parameter」と検索します。
3.「CustomParameterHandler」という拡張を選択します。
4.この拡張にはJythonが必要なので、「download Jython」をクリックして、ダウンロード先のWebサイトを開きます。

5.「Jython Standalone」を選択して、任意の場所にjarファイルをダウンロードします。

6.BurpSuiteに戻って、ExtenderタブのOptionsを開きます。
7.「PythonEnviroment」の「Location of Jython standalone JAR file」に、先程ダウンロードしたJythonのパスを設定します。

8.ExtenderタブのBAppStoreに戻り、他の拡張を選択して、「Custom Parameter Handler」を再選択すると、installボタンが表示されます。
9.installボタンを押して、拡張機能「Custom Parameter Handler」をBurpSuiteにインストールします。

10.インストールが終了すると、「CPH Config」というタブが追加されます。
11.パラメータを引き継ぐ際に使うツールがRepeaterの場合は、Repeaterにチェックを入れてください。不要なチェックは外してください。
12.インストール作業は以上です。

【使い方】

下記のようなJSONレスポンスから、JSONリクエストに値を引き継ぐことを想定します。
Response:input.php

Request:confirm.php

1.まず、通常通りマクロを組みます。
2.レスポンスを得るためのMacroを作成する。

3.MacroRulesに、「Run a macro」として登録する。

4.MacroRulesのScopeタブで、URL Scopeを「Include all URLs」として登録する。これで、JSONリクエストを送信する前にレスポンスを得ることができるようになりました。

5.さて、やっと拡張機能の使い方です。取得したいレスポンスをProxyタブなどで右クリックし、Extensions→Send to CPHを選択します。

6.そうすることで、CPH Configタブへレスポンスの内容がコピーされます。
ここで、レスポンスを記憶させるための設定をします。

7.Friendly nameに任意の名前を設定します。ここで設定した名前が、CPH Config内での名前になります。
8.CPH Configタブの7で設定したタブのチェックを外します。チェックがあると設定した内容で置き換えられますが、レスポンスはキャッシュされます。
9.Scopingのプルダウンで、「only on requests」を選択します。
10.ScopingのRegEx右側のテキストボックスに、リクエストの1行目をコピーして、貼り付けます。
BurpSuiteを流れる
11.Parameter handlingの「The value I need is dynamic」のチェックを外します。

12.次に引き継ぎ先のリクエストを、Proxyタブなどで右クリックして、Extensions→Send to CPHを選択します。

13.CPH Configタブへリクエスト内容がコピーされます。

14.Friendlynameを任意の名前に変更します。ここでは、replaceRequestとしています。
15.Scopingを「only on request」に設定します。
16.ScopingのRegExのチェックを外し、「POST /confirm.php HTTP/1.1」と設定します。
これで、この文字列を含んだリクエストのみ、引き継ぎが実行されます。
17.Parameter handlingの1)で、「”csrf_token”:”.*”」と置き換え対象の文字列を設定します。RegExにチェックが入っていると、正規表現が利用可能です。
18.Parameter handlingの3)で、「”csrf_token”:”\g<token>”」と、置き換え後の文字列を設定します。「\g<token>」については、後述します。
19.Parameter handlingの4)で、プルダウンから「values in the cached response of a previous CPH tab」を選択します。
キャッシュしたレスポンスから値を設定することを意味します。
20.Parameter handlingの4)で、2つ目のプルダウンから手順7で設定した名前を選択します。キャッシュしたレスポンスのうちどれかを選択することになります。
21.Parameter handlingの4)で、RegExのテキストボックスに「”csrf_token”:”(?P<token>[0-9a-z]*)”」と置き換え文字列の条件を設定します。
「(?P<token>~)」とすることで、手順18で「\g<token>」という名前で置き換え文字列の名前付けを行なうことができます。

22.【重要】最後に、引き継ぎ元と引き継ぎ前のリクエストドメインを、Targetに入れてください。
筆者もよくこの設定を忘れて動かなくてハマります。

23.以上を設定して、Repeaterを実行することで、リクエスト中のJSONパラメータの置き換えができました!

【最後に】

この拡張機能は私が作ったものではありませんが、日本語で解説された記事が見当たりませんでしたので、今回紹介させて頂きました。
設定内容はBurpSuiteを閉じると消去されるため、設定をエクスポートしておくことをオススメします。
他の使用方法等については、英語ですが公式Wikiをご参照ください。

github elespike/burp-cph

CentOS6.5のPHPをバージョンアップしたい

0
Wordpressイメージ

「テスト環境のWordpressを最新版にアップデートしたいので、phpのバージョンをあげてほしい」と言われたデザイナーの今井です。

そう言うわけで人生初のphpバージョンアップに挑戦しました。
検索して、いくつか記事を見てわかったこと…それはphpのバージョンを上げるには今のphpを削除して、新しく入れ直すしかない、と言うことです。
めちゃくちゃ怖いですね。
問題が起こったらphpが使えなくなってしまう。
そう思ってためらいましたが、場所はテスト環境。phpを使っているのはWordpressだけ。
最悪Wordpressが使えなくなるだけです。そうなったらエンジニアさんに助けて貰えばいい。
困ったら相談できるエンジニアがいるというのはアピリッツのいいところの一つです。
(迷惑かもしれない、なんて考えてはいけない)
覚悟が決まったのでさっそく作業を始めましょう。

一番参考になった記事

Qiita:CentOS7のPHPを5.6/7.0/7.1/7.2/7.3系にバージョンアップする

結論から言うと基本的にはこちらの記事の手順で問題ないです。
しかし、今回はサーバがCentOS6.5と、この記事より古く、うまくいかない部分があったのでそこで起こったエラーや問題とその解決方法を紹介します(脚注[1])。

リポジトリを追加する

Qiitaの記事にそう書いてありますね。いきなりつまづきました。
りぽじとり…というワードはわかりますが、環境構築する際にリポジトリをどうこうするというのを聞いたことがありません。
あまりにもわからなくてこのまま進めるのは不安なので調べます。

EPELリポジトリ(レポジトリ)とは

なるほどわからん。
具体的なことはわかりませんが、わからないなりに、どうやらCentOSの界隈では普通に必要な工程であるらしいことを察しました。
わからないことをわかるようになるまで調べるのはとてもいいことだと思いますが、時には理屈はわからないけど必要なことはわかった、という程度の理解で進めることも大事です。
(壊れちゃっても最終兵器エンジニアを投入することでなんとかなると思ってます)

まずはEPELリポジトリですね。

# yum install epel-releas

Qiitaの記事に従って、installコマンドを実行しました。

Loaded plugins: fastestmirror, security 
Determining fastest mirrors 
# CentOS-Base.repo 
YumRepo Error: All mirror URLs are not using ftp, http[s] or file. 
 Eg. Invalid release/repo/arch combination/ 
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt 
Error: Cannot find a valid baseurl for repo: base

エラーになりました。
ちなみに、Qiitaにはもう一つコマンドがありますが、それもエラーが出てしまい通りません。
とりあえずエラーの「Error: Cannot find a valid baseurl for repo: base」この辺のワードで検索をします。

> 調べてみると、CentOSのサポートが切れるとyumコマンドが失敗するらしい。

なるほど?
というわけでCentOSのバージョンを調べると6.5であることが判明しました。
なので、CentOS-Base.repoをこの記事の指示に従って修正していきます。
ちなみに、この記事ではCentOS-Base.repo以外にも修正箇所があったようですが、今回作業した環境ではこのファイルのみの修正で大丈夫でした。
再度installコマンドを実行。今度は成功したので、次のREMIリポジトリのインストールへ進みます。

# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

またもエラーです。

http://rpms.famillecollet.com/enterprise/remi-release-7.rpm を取得中
エラー: 依存性の欠如:
epel-release = 7 は remi-release-7.9-1.el7.remi.noarch に必要とされています

なぜか日本語…なのはとりあえず置いといて、epal-releaseが7じゃないとダメって言われてるきがします。
さっき入れたEPELリポジトリのバージョンを調べてみます。

# yum list installed |grep epel
epel-release.noarch 6-8 installed

6-8ですね…ここでしばらくEPELリポジトリを7以上に上げる方法を調べますが、これと言って有力な情報はでてきません。
でもいろいろな記事を見て気づきました。

Qiitaの記事はCentOS7での話をしています。そしてこちらの環境は6.5…。
「remi-release-7.rpm」は「remi-release-6.rpm」にしないといけないのでは?

物は試しでやってみました。

# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

今度は無事インストールができたようです。
この先問題があるかもしれないけど、とりあえず進めることにします。
#実はepel-releaseは作業前からすでにインストール済みのものがあったのでこの工程は飛ばしてもよかったかもしれない。

現在のPHPをすべて削除

一番覚悟がいる工程です。
これを実行したらもう後には戻れません。
でもその前にこのQiitaの記事にはなくて他の記事に書いてあった、現状インストールされているパッケージを確認する、というのをやっておきます。

# yum list installed | grep php

これを実行すると

php.x86_64 5.5.7-1.el6.remi @remi-php55
php-cli.x86_64 5.5.7-1.el6.remi @remi-php55
php-common.x86_64 5.5.7-1.el6.remi @remi-php55
php-mbstring.x86_64 5.5.7-1.el6.remi @remi-php55
php-mysqlnd.x86_64 5.5.7-1.el6.remi @remi-php55
php-pdo.x86_64 5.5.7-1.el6.remi @remi-php55
php-pear.noarch 1:1.9.4-23.el6.remi
php-pecl-jsonc.x86_64 1.3.3-1.el6.remi.5.5
@remi-php55
php-pecl-zip.x86_64 1.12.3-1.el6.remi.5.5
@remi-php55
php-process.x86_64 5.5.7-1.el6.remi @remi-php55
php-xml.x86_64 5.5.7-1.el6.remi @remi-php55

こんな結果が返ってきました。いろいろ入っているようです。
あとでこの辺のパッケージは入れ直さないといけないです(Qiitaにも最後にパッケージを入れ直す工程があるのですが、事前確認する工程がなかったので…)

iniファイルのバックアップと、removeコマンドはQiitaの記事通りに。
ここは問題なく進みました。

新しいPHPをインストール、PHP関連パッケージの追加

これもQiitaの記事に従って進めればOKです。
関連パッケージは削除前に調べておいたものを入れていきます。
一つだけ、「php-pecl-jsonc」が存在しなかったのですが、「php-json」がすでに初期セットにあり、それがあれば良さそうなのでよしとします。

PHP設定の復元

もともと初期のiniファイルから変更してないようだったので、この工程はとばしました。
Qiitaの記事はこの辺りまでですね。
初めての作業で心配なので追加で少し確認をします。

PHPのバージョンを確認

# php -v

ちゃんとアップデートできたか確認したいので、phpのバージョンを調べます。

PHP 7.3.25 (cli) (built: Nov 24 2020 14:31:55) ( NTS )
AuthUserFile /var/www/html/wordpress/.htpasswd
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.25, Copyright (c) 1998-2018 Zend Technologies

ちゃんと入ったようです。これでphpのアップデート作業は終わり。
#あとになって最新の8にアップデートすればよかった、と気づきました…

WordPressをアップデート

一度はCentOSが古すぎてダメなのでは?と挫けかけましたが、ついにここまでたどり着きました。
WordPressのアップデートは管理画面からボタン一つなので簡単です。
…と思ったのですが、なぜかphpのバージョンが古いからダメ、と言われます。

コマンドでは確かに最新のバージョンを確認したのに…
と思いつつ、設定内容を確認するphpinfo()を試してみました。
phpファイルを適当な名前で作成して

<?php
phpinfo();
?>

内容はこれだけでブラウザで確認してみます。
phpinfoの表示は5.5.7…古いままです。

しかしサーバでコマンドを打つと先ほど同様、7.3と返ってきます。
WordPressが最新のバージョンを認識しない件で調べても、.htaccessに何か書いてないか、というくらいの情報しかなく、行き詰まりました。

調べても何も出てこないので、こう言う時はとりあえずできることをやる。
Apacheを再起動してみました。

…反映されてる!
もしかして、Apache再起動なんて当然のことすぎて記事にも書いてなかったのでしょうか…。

サーバの環境を変更したら、Apache再起動。

これでWordpressも無事アップデートができました。

おわりに

今回初めてphpのアップデート作業をしましたが、多少のエラーはありつつも、基本的には問題なく作業を終えることができました。
「やったことない作業だから、エンジニアさんに頼んでください」
と言うこともできなくはなかったのですが、ちょうど案件の合間で時間もあったし、本当に困ったらエンジニアさんに相談もできる、と思ったのでやってみました。
たまにはこういうちょっとした挑戦をやってみると、自分にもできると思えることが増えていくので楽しいですね。

——————————
[1]CentOS6.5は2020年11月30日でサポート終了していますが、今回のサーバはクローズドなテスト環境であることと、その他諸事情によりOSはアップデートせずにPHPのアップデートのみを行いました。

10分で大体わかる!「Googleオプティマイズ」

0

1.はじめに

はじめまして。2021年新卒の手塚です。手塚健介です。

昨年終わりごろからインターンとしてアピリッツに勤めておりまして、いくつかのサイトのアクセス解析を担当したり、ヒアリングの場に立ち会ってきました。その中で印象深いことというと、クライアントから「サイトをリニューアルして、売上を伸ばしたい」といったお声が多かったことでした。

さて、ECなどのWebサイトのデザインを改善するとき、最も不安になることといえばなんでしょうか。

答えは「作成したページは本当に使いやすいのか」です。

色々時間と費用をかけてサイトをリニューアルしても、いざ公開した際にこれまでよりアクセスが伸びない、ましてや売上が落ちたらリニューアルした意味が無くなってしまいます。先述のクライアントの方々も、そうした不安を抱えていました。

そこでUIやデザインのリニューアルを行ったことでWebサイトが本当に使いやすくなったのかどうかを知りたくないでしょうか?

こういった場合、「A/Bテスト」というサイト改善効果を確かめるWebテストを行うことが有効です。

ただ、「A/Bテスト」を行うには、

  • 訪問ユーザーの振り分け
  • アクセスデータの計測
  • サイトの成果の自動最適化

以上の3つの課題がありました。これらをクリアするには高い開発力やデザイン力、分析能力が求められます。そのため自社内だけでテストを完結させることは難しく、工数も費用もかさんでしまいました。結果として「A/Bテスト」を行うことができた企業は限られていました。

しかし、「Googleオプティマイズ」というツールが登場したことで誰もが簡単に「A/Bテスト」を行えるようになったのです。実際、「Googleオプティマイズ」の導入を現在検討中ないし実装に向けた準備を始めてくださったクライアントもいらっしゃいます。

今回は、「10分で大体分かる」をモットーに新卒の目線から「A/Bテスト」そして「Googleオプティマイズ」の強みについて、これからWebをよりよくしていきたい!という方のためにご紹介します。まだすべての機能を使いこなせているとはいえない勉強中の身ではありますが、よろしくお願いします。

2.「A/Bテスト」とは?

1)「A/Bテスト」の概要

「A/Bテスト」とは、Webサイトを制作、改良する際に行われる工程の一つで、「同じページで複数のパターンを用意し、どちらがより良い結果を得られるか」を検証するテスト手法です。

例えば、あなたはECサイトの管理人で、サイトの売り上げ向上のためにTOPページを改良したいとします。この時、元のページのデザインをパターンA、パターンAから一部を変更したページをパターンBとします。

「A/Bテスト」では、サイトを訪問したユーザーに対してこの複数パターンあるページをランダムに表示します。その結果、ユーザーはパターンB、改良したときの方が購買行動が活発になることがわかりました。これで安心してサイトのリニューアルは効果的だということがわかり、サイトのリニューアル版を自信をもって公開することができました。

まとめると以下のようになります。

  • 「A/Bテスト」とはWebサイトを制作、改良する際に行われる工程の一つ
  • サイトの改案が本当に効果があるのかどうかを検証するために必要な工程

2)「A/Bテスト」の特徴(多変量テスト)

サイトのリニューアルは一部分を変えるだけにとどまりません。特集したい商品の見出しや、商品画像の組み合わせをテストしたいことも多いでしょう。ただし、一つ一つの組み合わせを「A/Bテスト」で判断していては余計な時間とコストがかかってしまいます。

そうした場合におすすめな手法が「多変量テスト」です。

「多変量テスト」は、複数の要素を変更したいときに「どの組み合わせが最良の結果をもたらすか」を検証するテスト手法です。同時に複雑な組み合わせをテストすることができるため、デザインの相互作用により、より多くの情報を得ることが可能となります。そのため、中規模~大規模のサイトリニューアルを行いたい場合で有効なテストといえます。

まとめると以下のようになります。

  • 「多変量テスト」とは複数要素の組み合わせを同時にテストし、最良の結果が得られる組み合わせを検証する手法
  • デザインの相互作用からより多くの情報を得られる

3.「Googleオプティマイズ」とは?

Googleオプティマイズ公式ロゴ。 めっちゃ格好いい。

1)「Googleオプティマイズ」の概要

「Googleオプティマイズ」を簡単に説明しますと、「Googleが提供している基本無料で誰でも利用可能なテストツール」です。Googleのアカウントさえあれば、個人、法人関係なく誰でも「A/Bテスト」を実施することが可能です。

「Googleオプティマイズ」はブラウザ上のレイアウトやテキストなどを、直感的な操作で編集することができ、編集した要素の「A/Bテスト」「多変量テスト」を簡単に行うことができます。また、「テストを行う対象ユーザーのターゲティングが可能」であり、例えば都内からのアクセスに対してのみテストを実行したり、20~30代の年齢層に対してのみテストを実施したり、などが可能になります。こうしてWebサイトの最適化を手軽に行うことが可能です。

よって現在、「Googleオプティマイズ」は「A/Bテスト」を行ううえで広く用いられいる一般的なツールです。

2)「Googleオプティマイズ」のメリット

「Googleオプティマイズ」を使う際のメリットは以下の5つです。

①無料ツールである

「Googleオプティマイズ」は、他のGoogleが提供するGoogleアナリティクスや、Googleタグマネージャーと同様に、Googleアカウントさえあれば基本的に無料で利用可能なツールです。他にもWebテストが行えるツールがありますが、その場合有料になってしまったり、無料ツールだとしても機能が少ない場合が多いです。

無料なのに多機能で使いやすい。これが「Googleオプティマイズ」の大きな強みです。

②Googleが提供する他ツールと連携可能

「Googleオプティマイズ」は、それ単体ではほとんど意味がありません。テストを実施し、結果を得るには「Googleアナリティクス」と連携する必要があります。

Googleアナリティクスとは、Webサイトのアクセス状況を収集する解析ツールです。アナリティクスと連携することでテストの実施、結果の集計が可能となります。他にも、ネット広告の成果の解析や広告管理を行えるツール「Google広告」と連携することでテスト時のターゲットとして広告から訪問したユーザーを指定できます。

このように、Googleの他ツールと連携することで、テストをより効果的に行えるわけです。

③実装に必要な工数・コストを削減

「A/Bテスト」「多変量テスト」を行う際、もし「Googleオプティマイズ」を使用しないと、テストの実施難易度はぐっと跳ね上がります。

例えば

  • テストの度に制作会社に依頼する必要があるため、費用が生じる
  • テストページを用意する必要があり時間がかかる
  • サイト改変による売上低下のリスクがある

以上の課題があり、簡単に実施できるものではありませんでした。

「Googleオプティマイズ」は最初の設定・導入さえ行えば、あとはスムーズにテストが可能となります。そのため、自社内でもテストが行えるようになり、テスト実施までの工数と費用の削減が実現します。

④テスト結果の集計・比較が容易

「Googleオプティマイズ」では実施したテストの結果は自動で集計され、簡単にレポート作成できます。さらに、重要なテストの指標とである「セッション数・コンバージョン数・コンバージョン率」をひと目で比較可能になりました。

⑤SEO・広告スコアに影響しない

「Googleオプティマイズ」は、URLを改変することなく「A/Bテスト」を実施できます。そのため、URL情報が大きく影響する検索結果の順位や、WEB広告にも影響を与えません。テスト中のアクセスはテスト前同様、オリジナルのページに対する評価として集計されます。

3)「Googleオプティマイズ」のデメリット

ここまで、「Googleオプティマイズ」のメリットをご紹介しましたが、いくつかデメリットも存在します。とはいっても、ここで紹介するデメリットは対策可能なものであり、大きな問題になることは基本的にありません。

「Googleオプティマイズ」のデメリットは、以下の2つです。

①テスト中のユーザビリティ低下リスク

ユーザビリティとは、国際規格では「ある製品を、特定の利用者が、特定の目的を達成しようとするにあたって、特定の状況で、いかに効果的に、効率的に、満足できるように使えるかの度合い」として定義されています。Webサイトにおいては、「サイトの分かりやすさ」を示す指標の一つということです。

「Googleオプティマイズ」を用いてテストを行っていると、ページの読み込み速度の低下、画面のちらつき(フリッカー)が生じる恐れがあります。こうした現象がユーザビリティの低下を招き、セッション数や、コンバージョン数などが低下、結果的に適切な計測ができなくなる可能性があります。

この問題の対策は、サイト内に以下のような「アンチフリッカー スニペット」と呼ばれるタグを設置することです。

(例)

このタグを埋め込むことで上記の問題を軽減することが可能になります。

②テスト後の効果検証が不十分となる恐れ

先ほど紹介したメリット④「テスト結果の集計・比較が容易」と一見すると矛盾するこのデメリットですが、実際のところほとんど問題にはなりません。

といいますのも「Googleオプティマイズ」単体ではテスト後の検証が難しいという点は確かにデメリットですが、こちらはGoogleアナリティクスと連携することで定量的な検証が可能になるうえ、設定時にアナリティクスとの連携が必要になるため、ほぼデメリットとは言えないものです。

ここまでデメリットについてお話ししましたが、まとめると

  • テスト中はアクセス時に問題が起きることがあるが、タグ設置により修理可能
  • 「Googleオプティマイズ」単体ではほぼ意味がないが、アナリティクス導入で解消される

以上のように、比較的容易に解消できるものといえます。

4.「A/Bテスト」「多変量テスト」の進行イメージ

ここまで、テストについて、「Googleオプティマイズ」についてご説明しましたが、実際にテストを行う際、どういった流れで進めていくのでしょうか。

今回はアピリッツが過去に「Googleオプティマイズ」を使ってテストした際の流れをアレンジしたものをもとにお話しします。

そのため、以下の工程の期間は案件の規模によって変動します。

1)要件定義

要件定義では

  • テスト対象ページ
  • 実施するテスト
  • 作業工数
  • 各作業担当者
  • テストの目的

を定め、要件定義書としてまとめます。

これが今後の作業のベースとなり、1~2週間程度かけて行います。

2)仮説立案

①と同時に行われることもあります。

この工程では、ユーザビリティ向上のためにどのようにサイトを改善するか、といったより具体的な方向性を定めていきます。

この工程は3~5日程度かかります。

3)パーツ作成

仮説が決まったら次は仮説に応じたデザインパーツや、フレーズを考えます。

この工程は規模にもよりますが、長くとも1か月程度を想定します。

4)実装

ここまでの工程で決めたことを実際に「Googleオプティマイズ」で実行します。

③で制作したデザインパーツをツール用に調整したうえで、「Googleオプティマイズ」の管理画面を設定し、実際にテストを開始します。

この工程は設定、テスト開始までのため、1日で可能です。

5)効果測定

実装からある程度期間をあけて、蓄積したデータに基づき目標を達成したかどうかを分析する工程です。

導き出した結果の要因分析を行い、問題なければテスト終了、さらに改善可能な場合は次のテストに向け、工程②「仮説立案」を再び行います。

テスト期間を含めて、最低でも1か月余はかかる工程です。

こうして②~⑤の工程を繰り返すことでWebページが最適化されていきます。基本的には以上の工程でテストは終了ですが、アピリッツではさらにもう1つの工程を実行いたします。

6)レクチャー

ここまで進めてきた工程や、「Googleオプティマイズ」についてなどの知見を踏まえ、今後類似した「A/Bテスト」「多変量テスト」を行う際はアピリッツを介さずともある程度クライアント内で完結できるようにセミナーを実施いたします。また、アピリッツはその後もテスト実装だけでなく、運用時のサポートデスクとしても対応します。

こちらは任意の1日を期間として設定しました。

ここまでをまとめますと、次の通りです。

  • 要件定義でサイト改善の方針やコストを定める
  • 仮説検討でより具体的な仮説を設定する
  • そののちにデザインパーツを制作する
  • 実際に導入し、テスト開始
  • 本当に効果があったかどうかを検証
  • 最適解が見つかるまで仮説~検証を行う
  • 内省化できるようにサポート体制を整える

5.おわりに

今回は「A/Bテスト」「Googleオプティマイズ」について、なるべくざっくりご紹介しました。

「A/Bテスト」はもともと、複数の企業と連携しながら進行するため、工数も費用も多くかかってしまい、多くの企業で実施することが困難な作業でした。ですがこの課題は「Googleオプティマイズ」の登場によって解消し、多くの企業だけでなく、個人でWebを運用している方にも「A/Bテスト」が浸透するようになりました。

もしこの記事を通して「Googleオプティマイズ」にご興味を持っていただき、実際に始めてくださる方がいらっしゃれば幸いです。そのうえで運用においてご不明点が生じたり、今よりもサイトを改善していきたい、と思われる方はアピリッツにお声がけください。

アピリッツは、Webコンサルタントとして「Googleオプティマイズ」を用いたテストのご提案だけでなく、テスト時に必要なデータ基盤構築、アクセス解析、デザインパーツの制作などもできるメンバーがそろっており、より効率的にWebサイトが改善できるようご支援いたします。

アジャイルソフトウェア開発の奥義

0

はじめに

私は、本を紹介したいと思います。紹介する本は、
アジャイルソフトウェア開発の奥義 オブジェクト指向開発の神髄と匠の技 第2版」です。
この本に出てくるコードは、javaとC++で書かれています。
この本は、アジャイル開発・SOLID原則・デザインパターン・パッケージ設計の原則に
ついて学ぶことができます。

私がこの本を読もうと思ったきっかけは
美しいコードを書けるようにないたいと考えるようになったからです。
というのも、学生時代に作成したコードを見返したときに
「なんて汚い読みにくいコードなんだ!!」と衝撃を受けたのがきっかけです。

この本を読んでのSOLID原則について、私なりに簡単に説明したいと思います。
ただ、プログラミング初心者には、少し難しい内容になっています。
SOLID原則とは、オブジェクト指向に即してコードを整理するための5つの原則で
それぞれの原則の頭文字をとってこう名付けられています。以下、順に紹介していきます。

単一責任の原則(SRP)

クラスを変更する理由は1つ以上存在してはならない

こちらは、SRPに違反しているコードです。

public class Employee {
	String itsName;
	int itsAge;
	FileWriter fileWriter;

	public void setName(String name) {
		itsName = name;
	}

	public String getName() {
		return itsName;
	}

	public void setAge(int age) {
		itsAge = age;
	}

	public int getAge() {
		return itsAge;
	}

	public void save() {
		try {
			fileWriter = new FileWriter("employee.csv");

			fileWriter.append(itsName);
			fileWriter.append(",");
			fileWriter.append(String.valueOf(itsAge));
			fileWriter.append("\r\n");

			fileWriter.flush();
			fileWriter.close();
		} catch (IOException e1) {
			e1.printStackTrace();
		}
	}
}

このコードは、変更する理由を2つ持っています。

  • 「従業員情報管理」と「従業員情報をcsv出力」という2つの役割
  • この2つの役割は、それぞれ別の理由で変更される

これが、SRPに違反している状態です。
このクラスを複数のクラスが利用していて従業員情報に変更があった場合

  • saveメソッドだけを使用しているクラスもリビルド、再テスト、再ロードすることになる
  • うっかり忘れると、アプリケーションの振る舞いが予測不可能な状態になる

では、どのようにすれば良いか。

public class Employee {
	String itsName;
	int itsAge;

	public void setName(String name) {
		itsName = name;
	}

	public String getName() {
		return itsName;
	}

	public void setAge(int age) {
		itsAge = age;
	}

	public int getAge() {
		return itsAge;
	}

	public return getExcelString() {
		return itsName + "," + String.valueOf(itsAge) + "\r\n";
}


public interface EmployeeSaveInterface {
	public void save(Employee employee);
}

public class EmployeeSave implements EmployeeSaveInterface{
	public FileWriter fileWriter;

	public void save(Employee employee) {
		try {
			fileWriter = new FileWriter("/employee.csv");

			fileWriter.append(employee.getExcelString());

			fileWriter.flush();
			fileWriter.close();
		} catch (IOException e1) {
			e1.printStackTrace();
		}
	}
}

このようにすることで、従業員情報を変更するときは、Employeeクラスを変更して
saveメソッドを変更するときは、EmployeeSaveクラスを変更するようになります。
それぞれのクラスの変更理由が1つになります。

そもそも、役割とは、何なのかという人もいると思います。
「変更理由=役割」ということです。
いくつか機能を持っているクラスでも、同じ変更理由で変更されるのであれば
そのクラスの役割は、1つということになります。

オープン・クローズドの原則(OCP)

ソフトウェアの構成要素(クラス、モジュール、関数など)は拡張に対して開いて(Open)いて、
修正に対して閉じて(Closed)いなければならない

こちらは、OCPに違反しているコードです。

public class DrawingTool {
	public void drawAllShapes(ArrayList<String> list) {
		Circle circle = new Circle();
		Triangle triangle = new Triangle();
		for(int i = 0; i<list.size(); i++) {
			switch (list.get(i)) {
				case "Circle":
					circle.drawCircle();
					break;
				case "Triangle":
					triangle.drawTriangle();
					break;
			}
		}
	}
}

public class Circle {
	public void drawCircle() {
		System.out.println("Circle");
	}
}

public class Triangle {
	public void drawTriangle() {
		System.out.println("Triangle");
	}
}

このコードは、修正に対して閉じていません。
注目してほしいのは、drawAllShapesメソッドのswitch文です。
ここに新しい図形クラスを追加しようとすると以下のようになります。

  • switch文に新しい図形クラスに対応する処理を追加
  • 機能を拡張しようとすると、既存のクラスを修正しなければならない状態
  • 図形を追加する度にswitch文を修正するのは、手間が掛かる

これが、OCPに違反している状態です。
では、どのようにすれば良いか。

public class DrawingTool {
	public void drawAllShapes(ArrayList<Shape> list) {
		for(Shape shape : list) {
			shape.draw();
		}
	}
}

public abstract class Shape {
	public abstract void draw();
}

public class Circle extends Shape {
	@Override
	public void draw() {
		System.out.println("Circle");
	}
}

public class Triangle extends Shape {
	@Override
	public void draw() {
		System.out.println("Triangle");
	}
}

このコードは、修正に対して閉じています。
このように各図形のクラスに共通のメソッドを継承させることで、新しい図形を追加する場合

  • 新しい図形クラスでShapeクラスを継承して
    新しい図形クラスでdrawメソッドをオーバーライドするだけで済む
  • drawAllShapesメソッドに変更を加える必要はない
  • 既存のクラスへの影響を気にせず、クラスを追加するだけで機能を拡張できる

これが、OCPに準拠している状態です。

リスコフの置換原則(LSP)

派生型はその基本型と置換可能でなければならない

こちらは、LSPに違反しているコードです。

public class Rectangle {
  private int itsHeight;
    private int itsWidth;

    public void setHeight(int height) {
    	itsHeight = height;
    }
    public void setWidth(int width) {
    	itsWidth = width;
    }

    public int getArea() {
    	return itsHeight * itsWidth;
    }
}

public class Square extends Rectangle {
	private int itsHeight;
	private int itsWidth;

	public void setHeight(int height) {
		itsHeight = height;
		itsWidth = height;
	}

	public void setWidth(int width) {
		itsHeight = width;
		itsWidth = width;
	}

	public int getArea() {
		return itsHeight * itsWidth;
	}
}

Rectangle.setHeight(20)    Square.setHeight(20)
Rectangle.setWidth(30)     Square.setWidth(30)
Rectangle.getArea() => 600  Square.getArea() => 900

このコードは、Rectangle(基本型)とSquare(派生型)のgetAreaの振る舞いが変わっています。

  • SquareとRectangleでgetAreaを同じ方法で呼び出した結果が同じにならない
  • Squareは、Rectangleと置換が不可能

これが、LSPに違反している状態です。
では、どのようにすれば良いか。

 public interface Shape {
	public void setHeight(int height);
	public void setWidth(int width);
	public int getArea();
 }

 public class Rectangle implements Shape {
	private int itsHeight;
        private int itsWidth;

        public void setHeight(int height) {
    	         itsHeight = height;
        }
        public void setWidth(int width) {
    	         itsWidth = width;
        }

        public int getArea() {
    	        return itsHeight * itsWidth;
        }
 }

 public class Square implements Shape {
	private int itsHeight;
	private int itsWidth;

	public void setHeight(int height) {
		itsHeight = height;
		itsWidth = height;
	}

	public void setWidth(int width) {
		itsHeight = width;
		itsWidth = width;
	}

	public int getArea() {
		return itsHeight * itsWidth;
	}
}

RectangleとSquareを継承を使わずに分離します。
しかし、似たような性質を持っているため、完全には分離しないようにします。

  • 派生型が基本型に置換可能ということは、拡張に対して開いており、
    修正に対して閉じていることを表している

LSPに準拠することでOCPを準拠することができます。

インターフェース分離の原則(ISP)

クライアントに、クライアントが利用しないメソッドへの依存を強制してはならない

こちらは、ISPに違反しているコードです。

 public interface Motion {
	public void fly();
	public void run();
	public void swim();
 }

 public class Human implements Motion {
	public void fly() {
		System.out.println("飛ぶ");
	}

	public void run() {
		System.out.println("走る");
	}

	public void swim() {
		System.out.println("泳ぐ");
	}
 }

このコードは、Humanクラスを作成したときにMotionを実装すると、
Humanクラスでは、必要としないメソッドの実装を強制されます。
必要としないメソッドは、flyメソッドです。
人は、空を飛びませんよね? 

  • 利用しないメソッドを実装していると、そのメソッドの変更の影響を受ける可能性がある
  • 利用しないメソッドであれば、本来その変更に無関係なはずだが、それを実装していると不用意に影響を受けてしまう

これがISPに違反している状態です。
では、どのようにすれば良いか。

 interface MotionFly
 {
     public void fly();
 }

 interface MotionRun
 {
     public void run();
 }

 interface MotionSwim
 {
     public void swim();
 }

このように、必要としないメソッドがある場合は、インターフェースを細かくして、
分離することです。そして、必要なメソッドだけを実装するようにします。

  • 無関係なメソッド、クラスからの変更の影響を受けることがない

これが、ISPに準拠している状態です。

依存関係逆転の原則(DIP)

a. 上位のモジュールは下位のモジュールに依存してはならない
どちらのモジュールも「抽象」に依存すべきである
b. 「抽象」は実装の詳細に依存してはならない。実装の詳細が「抽象」に依存すべきである

こちらは、DIPに違反しているコードです。

 public class Button {
	private Lamp itsLamp;

	public Button(Lamp lamp) {
		itsLamp = lamp;
	}

	public void pull() {
		if(!itsLamp.getStatus()) {
			itsLamp.turnOn();
		} else {
			itsLamp.turnOff();
		}
	}
 }

 public class Lamp {
	private boolean itsStatus = false;
 
 	public void turnOn() {
 		itsStatus = true;
 		System.out.println("ON");
 	}

 	public void turnOff() {
 		itsStatus = false;
 		System.out.println("OFF");
 	}

 	public boolean getStatus() {
 		return itsStatus;
 	}
 }

このコードは、Buttonクラスは、Lampクラスに依存しています。
Lampクラスは、「実装の詳細」であり、「抽象」ではありません。

  • ButtonクラスがLampクラスという「実装の詳細」に依存していると、
    ButtonクラスはLampクラスしか扱えない
  • Buttonクラスを他のクラスで使用することが出来ない

これが、DIPに違反している状態です。

では、どのようにすれば良いか。

 public interface ButtonInterface {
	public void turnOn();
	public void turnOff();
	public boolean getStatus();
 }

 public class Button {
	private ButtonInterface itsLamp;

	public Button(ButtonInterface lamp) {
		itsLamp = lamp;
	}

	public void pull() {
		if(!itsLamp.getStatus()) {
			itsLamp.turnOn();
		} else {
			itsLamp.turnOff();
		}
	}
 }

 public class Lamp implements ButtonInterface {
	private boolean itsStatus = false;

	public void turnOn() {
		itsStatus = true;
		System.out.println("ON");
	}

	public void turnOff() {
		itsStatus = false;
		System.out.println("OFF");
	}

	public boolean getStatus() {
		return itsStatus;
	}
 }

このように抽象クラスであるButtonInterfaceクラスを作成して、
ButtonクラスをButtonInterfaceに依存させることで「抽象」に依存させることができます。

  • ButtonInterfaceクラスを実装することで、どのクラスでもButtonクラスを利用できる

これが、DIPに準拠している状態です。

おわりに

私自身もまだ完全に理解はできていませんが、自分がコードを書くとき
コードレビューをするときに、ただコードを書く、読むだけではなく
どのように書いているかを見るようになりました。

プログラミングを一通り経験した方でしたら、とても参考になり、
コードの見方やコードを書く時の意識も変わります。ぜひとも購入してみてください!

参考資料

オブジェクト指向設計の原則
SOLID原則について簡単に書く

社内勉強会のご紹介:Linux初心者向け読書会「サーバの基本 勉強会」

0

アピリッツの22期のテーマは「DX推進&デジタル人材育成」です。組織の成長と社員の育成のために、各職種の勉強会を推進しています。今回はそのなかのひとつ、「サーバの基本 勉強会」についてご紹介します。こちらはLinuxを基本としたサーバ技術を学ぶための初心者向け読書会で、社内のエンジニアが続々と参加しています。(2021年4月 取材)

Linuxを基本としたサーバ技術に明るくなるための楽しい勉強会

「サーバの基本 勉強会」はデジタルイノベーション部のエンジニア・渡辺さんが主催です。こちらの勉強会の目標や対象は以下の通り。

「サーバの基本 勉強会」とは

Linuxを基本としたサーバ技術に明るくなるための、楽しい勉強会です。
目標:自信を持ってサーバ管理に取り組めるPRO(プロフェッショナル)になること
指標:LPIC lv1の教科書を理解できるぐらいになること
対象:Linuxのなんらかのコマンドを打ったことがない人、なくはないけどサーバに障害が起きたとき切り分けであわててしまう人

毎週木曜日の19時~20時で開催し、基本オンラインでの参加となります。課題図書・各回の担当者を決め、担当者が事前準備をおこない、読書会にのぞみます。(なお、課題図書の購入では会社の書籍購入支援制度を利用できます。社員のみなさんはどんどん活用してくださいね!)

事前準備の情報共有や参考になりそうな書籍の紹介、そのほか勉強に役立ちそうなTipsは、社内のSlackチャンネルでやりとりしています。

読書会形式を選んだ理由は?

ところで、どうして「サーバの基本 勉強会」は読書会形式なのでしょう? 主催の渡辺さんと、第4回の発表者の一人だった栗山さんにお話を聞いてみました。

実際の発表会の様子。

渡辺:まず、この勉強会の目的は、若手エンジニアが運用・保守の業務に自信を持って取り組めるようになってもらうことです。サーバ管理を落ち着いて自信を持ってできるようになってほしいなと考えて企画しました。

栗山:サーバ周りの知識は、業務でも自己学習でも必ず求められます。自分はまだ初心者なので「勉強が必要だな、いつどうやって始めよう?」と考えていたところ、社内のSlackで「こんな勉強会があるらしいよ」と教わって、参加することにしました。

―― Webソリューション事業のエンジニアが続々と参加していますね。

栗山:はい。私はプログラミングスクールを卒業してアピリッツに入りました。ですから、もっと知見を広げていきたいですし、社内のいろんなエンジニアとつながりを持ちたかったので、そういった意味でも勉強会はいいなと思いました

渡辺:やる気もりもりの参加者のみなさんが進んで発表をしてくれるので助かっています。

栗山:どういう風に発表資料を作ったらわかりやすいかな? どういうトーンで話せば耳に残りやすいかな? など、聞き手のことを考えながら準備に取り組んだので、社内の勉強会とはいえ緊張感がありました。

渡辺:勉強会のために事前に準備をし、質問に対して答えたり、問題解決を行う、という手順は、じつは本番作業とも共通しています。自由課題形式やその場でハンズオンする形式などと比べ、よりリアルな経験を安全に積んでもらう、という意図で読書会形式を選びました。

―― 一人で勉強することと、読書会で勉強することの違いはどんなところでしょう?

栗山:自分一人で参考書を読んで勉強するよりも、疑問を投げかけて、みんなと一緒に考えながら読み進められる読書会は心強いです。

そして、実際に発表してみると「読んで覚えることも、話して覚えることもできる」ってとても良いことなんだなと感じました。理解がより深まります。それまで簡単だと思ってきた内容でも、発表ではうまく説明できなかったり、わかっていなかったところが浮き彫りになったんです。

基礎的な内容でも副読本で深堀り

―― 栗山さん、発表は緊張しましたか?

栗山:はい。笑 準備をしていたのに、思っていたより全然言葉が出てこなくて。特に実際にコマンドを打って挙動を確認する部分はみんなに見られてると思うとあたふたしました。

実行画面を見ながら「ここは、こう書いたらどうなる?」「実際の業務だと、みなさんどうしていますか?」など渡辺さんからのアドバイスや問いかけが入ります。

渡辺:「自分も学ぶぞ」という意識で参加しています。勉強会で取り扱うのは基礎的な内容なので、予習する側は、その範囲のテキストをただ読んで実施するだけならばすぐに予習が済むんです。ですが、副読本を4冊くらい併読して深堀りすると、必ず知らないことが出てきます

読書会直前の渡辺さん。たしかに副読本でフル装備でした。

渡辺:ですから、勉強会の参加者の中で自分がすべてにおいて一番詳しいということはないんですよね。学んだことは新鮮な気持ちでメンバーにも伝え、さらにフィードバックをもらうことが重要だと考えています。

栗山:自分の認識が正しいのか確認してもらえる場なので、参加してよかったです。身につけた知識をより強固なものにできますし、ちょっとした疑問を解決できます。

業務や部署を越えて社員が参加していますし、日常の業務で質問するタイミングがないなと感じているエンジニアがいたら、ぜひ参加してほしいです。

渡辺:今はWebソリューション事業のエンジニアが中心となって勉強会をおこなっていますが、ゆくゆくはオンラインゲーム事業のエンジニアとの相互交流も進めていきますので、楽しみにしていてください。

「業務よりもちょっとだけ未来の技術」を見せたい

―― 「サーバの基本 勉強会」はこれからも続きます。次のステップではどんな勉強会を開きたいですか?

栗山:サーバーのことがわかってきたら次はDockerをみんなで勉強したいですね。Webソリューション事業の開発環境ではDockerを使うことが多いので、よりよい使い方を身に着けたいです。

ゆくゆくは学んだ知識を活かしてみんなで社内アプリ製作&サーバー構築・デプロイまでできたら、部活みたいで楽しいかもなと思います。

―― 楽しそうです。渡辺さんの次の構想を教えて下さい。

渡辺:もちろん、いろんな領域の勉強会を計画中です!

BaaSを駆使したサービス開発、UI/Xの高速プロトタイピング、現場に即したER図や業務フロー図などのドキュメンティング、チームビルディングやモチベーティングなど、我々が習得すべきこと、また言語化して社内に浸透させていくべき知見はたくさんあります。

業務で挑戦したことよりもちょっとだけ未来を見ることができる機会になるはずです。

【IT新卒】私服通勤、浮きたくないならコレを着ろ!

はじめに

「会社に適切な私服って?」

「周りから変な目で見られたらどうしよう…」

「ジーパンは?スニーカーは?どこまで大丈夫なの?」

私服通勤にあたり、こんな悩みを抱えている人も多いと思います。

そこで今回、私服OKなアピリッツの新入社員がどんな服装で出社しているのかをご紹介します!

登場人物紹介

アピリッツ新一(新卒1年目)

フラットな社風の企業、アピリッツの新卒一年目。

大学時代からインターンでアルバイトをしていて、入社後は研修の傍ら、業務にも参加している。

服装マヨイ(新卒1年目)

新一とは大学の同級生。大学卒業後、服装自由のIT企業に就職。

リモート研修が終わり、いざ出社!となったが、会社で浮かない服装が分からず、明日の服装選びで迷っている最中。

会社に適した私服とは?

はぁ…明日から私服で出勤かー…

どうしたんだい。迷い君

私服出勤ってどこまでOKなのか分からないんだよ

確かに、毎日何を着て行くか考えるのは大変だね

じゃあ、僕の会社の新卒がどんな服装で来てるのか、参考に見てみよう。


キレイめコーデ

1. 職業 エンジニア

 コーデ 

紺色のセットアップにオレンジのインナーとスニーカーを合わせた、オシャレと真面目の融合スタイル

 服装を選んだ理由 

『天気が悪いから服装は明るく、あと楽なんで』

2. 職業 営業・コンサル

 コーデ 

グレーのYシャツと紺のチノパンにスニーカーを合わせた動きやすいスタイル

 服装を選んだ理由 

『寒くないような格好で』

3. 職業 デザイナー 

 コーデ 

ホワイトのインナーとカーディガンにマスタードカラーのパンツを合わせたかっちりスタイル

 服装を選んだ理由 

『外部の人に会う設定で、少し真面目な感じに』

キレイめなスタイルだと、
男性はセットアップやYシャツ、女性はカーディガンで、
割とオフィスカジュアルな服装+スニーカーっていうパターンが多いね。


結構皆ちゃんとした服装なんだなぁ…
逆に不安になってきた…

心配しないで!実はもっとラフな服装の人も多いんだ。
こっちの写真も見てごらん。


カジュアルコーデ

1. 職業 営業・コンサル 

 コーデ 

柄物のTシャツの下にレイヤード、ジーンズにスニーカーを合わせたラフなスタイル

 服装を選んだ理由 

『特に考えてない、そこにあったから』

2. 職業 エンジニア 

 コーデ 

パーカーにジーンズとスニーカーを合わせた、ゆったりスタイル

 服装を選んだ理由 

『暑すぎず、寒すぎず』

3. 職業 デザイナー 

 コーデ 

白のデニム生地のセットアップに黒のインナー、革靴を合わせたボーイッシュなスタイル

 服装を選んだ理由 

『気温が高いから薄めの格好で、それに合うように、靴を選んだ』

カジュアルなスタイルだと、
男性はパーカーやTシャツにジーンズ + スニーカー、女性はデニム生地のセットアップなど、休みの日でもそのまま遊びに行けそうな服装が多いね。


Tシャツとかパーカーの人もいるんだね!安心したよ!

節度さえ守れば服装は基本自由なんだ。
だから、そんなに不安にならなくても大丈夫!

ありがとう新一くん!

結論

 襟付きのシャツを着れば、無難!! 

 あとは周りの様子を見ながら好きな服、楽な服を着ていこう!!

MacBook初心者必見!おすすめ機能3選

0

はじめに

21新卒の河野です。
入社後支給されたノートPC「MacBook Pro」について、初めてMacを触る人にとって知っておくと便利な3つの機能を紹介します。

MacBook Proの性能

使用しているMacは、こちらのプロセッサはIntel Core i7、ストレージが512GBのものです。 画面はRetinaディスプレイ搭載なので解像度が高くて綺麗ですし、Core i7でメモリは16GBなので、Webプログラマが使うPCの性能としてはかなり良いものだと思います。

Macbookの使い方

Macに限らず、PCを利用するには欠かせないキーボード、 ノートPCでは基本的にマウスの代わりにトラックパッドを使います。
基本的な使い方のみならず、便利な機能も知っておくことで快適に業務をこなしましょう。

1. トラックパッドの機能

ノートPCを使う際、マウスポインターを動かすためのパッド部分の事をトラックパッドと言います。 平面上で指を動かすとマウスポインターが動きます。
トラックパッドでできる操作は結構あります。どんな操作で何ができるかを確認するには、環境設定から機能を見ることができます。
画面左上のリンゴマークから、 → システム環境設定 → トラックパッドで確認できます。

初期設定でのクリック動作は、トラックパッドを1本指で押し込むことになります。
頻繁にクリックして指が疲れる…という人は「タップでクリック」の項目にチェックを入れておくと軽く触れるだけでクリックできるのでおすすめです。

「その他のジェスチャ」の欄にも様々なトラックパッドの操作が確認できるので、便利そうだと思った機能は使って覚えてみてはいかがでしょうか。

ちなみに、私は「ページ間をスワイプ」と「フルスクリーンアプリケーション間をスワイプ」と「Mission Control」の設定をよく使います。「ページ間をスワイプ」はブラウザのページ切り替えがスムーズになります。
アプリケーションをフルスクリーンで使うことが多い時には「フルスクリーンアプリケーション間をスワイプ」を使うことでアプリケーションの切り替えが容易になり、逆に一つのデスクトップでアプリケーションを多数起動している場合には「Mission Control」で画面上にパッと表示させられるため非常に便利です。


2. キーボードの機能

MacBookで使うキーボードはWindowsと違ってキーボードの配置や、ショートカットキーが異なります。

commandキー

Windowsではコピペなどの操作は「Ctrl」キーを使いますが、Macでは「command」キーを使います。

主に使うcommandショートカットキー

ショートカットキー 機能
command + C コピー
command + V ペースト
command + W ウィンドウを閉じる
command + A 全選択
command + Z 直前の動作の取り消し
command + F 検索

ついでに、スクリーンショットのショートカットキーも覚えておくと良いでしょう。私が主に使うのは次の3つです。
撮影した画像はデスクトップに保存されます

ショートカットキー 機能
command + shift + 3 画面全体の撮影
command + shift + 4 画面一部の撮影
command + shift + 5 スクリーンショットの操作画面を開く

画面全体の撮影はショートカットキーを押した瞬間、画面一部の撮影はショートカットキーを押したあと撮影する範囲をドラッグすると撮影されます。
スクリーンショットの操作画面を開くショートカットは、画面全体と一部の撮影の他、画面の収録も可能な操作画面を開きます。
撮影箇所を正確に選択したい場合や画面収録をしたい場合に使いますが、基本的にはすぐに撮影できる上2つのショートカットキーを使い慣れておくと良いでしょう。

スクリーンショットの操作画面

controlキー

Macにはcontrolキーというものがあります。
このキーは、テキスト入力時などカーソル移動が多い作業をする際に非常に便利です。
移動にはカーソルキーがありますが、controlを使う利点はキーボードを操作する手がホームポジションからあまり離れずに入力できるということです。慣れると作業効率がかなり上がるので覚えていくと良いでしょう。

ショートカットキー 機能
control + P カーソルを上の行に移動
control + N カーソルを下の行に移動
control + F カーソルを1つ右に移動
control + B カーソルを1つ左に移動
control + A カーソルを現在の行または段落の先頭に移動
control + E カーソルを現在の行または段落の末尾に移動

また、文字の削除や行の挿入などもできます。

ショートカットキー 機能
control + D カーソル右側の文字を削除
control + H カーソル左側の文字を削除(deleteキーと同じ)
control + O カーソルの後ろに1行挿入
control + K 現在のカーソル右側の文字から、行または段落の末尾までを削除

これはオープンソーステキストエディタであるemacsのキーバインドと同じものです。
VSCodeでも使えますし結構汎用性が高いです。知っておくと役に立つかもしれません。


3. スクリーンセーバの設定

PCで作業中、数分もしくは数十分離席するときに、そのまま離席していませんか?
ロックの掛かっていない、作業中の画面が丸見えの状態で席を立つのはプライバシー的にもセキュリティ的にも危険です。 安全のためにもスクリーンセーバは設定しておき、すぐに動作できるようなカスタマイズをしておきましょう。
Macにはcommand + control + Qで画面ロックするショートカットキーがありますが、いまいち押しづらいですし、間違ってcommand + shift + Qを押すとシステムが終了してしまうので危ないです。
今回はホットコーナーを使った設定とタッチバーを使った設定を紹介します。

ホットコーナーの設定

ホットコーナーの設定は → システム環境設定 → デスクトップとスクリーンセーバのスクリーンセーバーのタグを選択し、使いたいスクリーンセーバーを選択してから右下のホットコーナーをクリックします。
画面のコーナーへの機能割り当てから、画面4隅のいずれかにマウスポインターを移動したときの動作を設定できます。 「スクリーンセーバーを開始する」という項目を設定することでマウスポインターを設定した画面隅に移動させることでスクリーンセーバーが開始するようになります。

タッチバーの設定

Macbook proに搭載されているタッチバーを使うことでもスクリーンセーバを設定することができます。
タッチバーの設定は → システム環境設定 → キーボードのキーボードのタブからControl Stripをカスタマイズをクリックするとタッチバーに追加する項目を選択できます。スクリーンセーバ以外にも便利機能を追加できるのでよく使いそうな項目はタッチバーに追加しておくといいでしょう。

*スクリーンセーバ解除時のパスワード入力

スクリーンセーバは、起動してから一定時間はパスワード入力不要で解除できる設定があります。これではいくらスクリーンセーバを使用しているといっても安全とは言い難いです。
 → システム環境設定 → セキュリティとプライバシーの一般タブから「スリープとスクリーンセーバの解除にパスワードを要求」の項目にチェックを入れ「開始後すぐに」に設定しておきましょう。
これで、スクリーンセーバ解除時には必ずパスワード入力が必要になります。

おわりに

仕事でも日常生活でも、現在社会において円滑な暮らしを実現するための情報端末は必須アイテムと言えるでしょう。
本記事で紹介した機能はMacbookを扱うために必ずしも覚えておく必要はありません。しかし、知っておくと確実に役に立ちます。この記事が業務の効率化・日常での作業の効率化の一助となれば幸いです。

ゲーム会社のデザイナー職で正社員になる方法:実録編

0

アピリッツのエクスペリエンスデザイン部に所属するかめです。アピリッツのデザイナー職で、アルバイトとして入社し、数カ月後に正社員となりました。「どうやってなったの?」と質問されることがあったので、お話したいと思います。

前編はこちら「ゲーム会社のデザイナー職で正社員になる方法:素養編」

やったこと1「正社員の仕事を手伝いまくった」

アルバイトとして入社した時、隣の席にいた私の上司(正社員)がとても忙しそうにしていました。見たところ、他の人でもできそうな内容の仕事をしていたので、「その仕事、XXさんがやるのおかしくないですか? 私がやりますよ!教えてください!」と仕事を進んで手伝うようになりました(仕事を取った、ともいいます)。

ここで教えていただいた開発ツールの覚えが早かった、出来そうな範囲を把握してどんどん仕事を貰っていった事が結果的には社員への近道になったかと思います。

私自身が正社員となった今は、忙しすぎる時期に入ると当時の私のようにアルバイトのメンバーに手伝ってもらうことがあります。ここで活躍してくれる人は、やはり正社員になる可能性が上がっています!

やったこと2「正社員になりたい」と宣言した

正社員の仕事をどんどん手伝うことで、今までの仕事では目に留まらなかった方々にも自分の業務を見ていただく機会が増えていきました。

これらがある程度評価されてから、上司に私は正社員になりたい意思がある事を伝えました。全てのアルバイトの方が正社員になりたがっているわけではないので、これは伝える必要があるかなと思います。

私の場合はこの他に業務・業務外問わず様々な社員の方と関わりをもっていたので、私の人柄を知ってくれている人は部内に多く、これも後押しになったかなと思います。これはリモートワーク中だと少し難しいことかもしれません。

ただ、リモートワーク中でも、直属の上司との関係構築は問題なく築けるはずです! 現在アピリッツではリモートワーク中のアルバイトスタッフも多くいますが、その人達の仕事のクオリティや姿勢を、社員はちゃんと見ています。それらが評価されれば正社員への道も見えてきます!

やったこと3 イラスト以外のスキルを身に着けた(みんな絵を描きたがる)

デザイナー職を志す人の多くは「絵を描きたい」人です。ただ、ゲーム会社のデザイナー職は絵を描くだけが仕事じゃないんです。エフェクト、モーション、UI、3D……いろんな仕事があります。

だからイラストだけがめちゃめちゃ上手くて正社員になる人は、アピリッツではごくわずかです。というのも、イラスト制作はイラスト専門会社にお願いすることが多いですし、フリーランスで活躍する優秀な方も大勢いらっしゃいます。そんな人達と業界で渡り合えるくらいの高い技術を持っていない限り、「イラストがいいから採用!」とはなりません。

私は背景イラストをメインで描いていましたが、背景イラストは描ける人が少なく、部の需要とちょうど合わさっていたようです。そこに合わせてアルバイト入社後に新しく開発ツールを勉強していきました。

正社員を目指すなら、イラスト以外のスキルも身につけることをおすすめします。

(でもイラストを描きたい気持ちはよくわかりますよ!)

正社員になって大きく変わったこと

私の場合は正社員になるとアルバイトの頃とまるっきり業務内容が変わりました。主にイラストを自分で書くことは少なくなり、代わりに他のアルバイトさんが作成した物の監修をするようになります。自分の下に作業者が付いて、進行管理やクオリティ管理をするようになりました。

他にも開発ツールでの作業がメインとなり、よりプロジェクトに深い部分にふれるようになります。受けた指示をこなすだけではいられなくなっていきました。

アルバイトの時に、自分の上司がしてくれていた仕事を自分がするようになる、というのが 分かりやすいかもしれません。

デザインの仕事をするうえで、プロジェクトやデザイン制作物に愛を込めるのは必須のことです。ただ、その愛が深すぎて周囲が見えなくなってしまう人は、苦労する場面が多いかもしれません。

正社員になるには推薦制

以上が私の正社員になるまでのお話です。仕事を積極的にたくさん引き受けたり、正社員になりたい!とアピールしたり。ずっと絵を描いているだけでは、たぶん正社員になるまでに数年かかっていたと思います。

正社員に上がるときには必要な技術はもちろんですが、上の社員からの推薦が必須かなと思います!社員にする話が出た際に話題に上がりやすく目を向けてもらえる可能性が増えるので、チャンスが多くなります!

多くの人に仕事と人柄共に信頼されているほうが一緒に働きたいと思ってもらい、推薦してもらえる可能性が増えるので、仕事を頑張る、新しい仕事にもどんどん挑戦するのが一番の近道かもしれませんね。

ゲーム会社のデザイナー職で正社員になる方法:素養編

0

アピリッツのエクスペリエンスデザイン部に所属しております、あさりです。日頃、アルバイトの成果物チェックや監修などの業務を行っています。

エクスペリエンスデザイン部では、アルバイト採用から実務経験を積み、正社員に登用される人が多数います。この記事では「どういった素養があればゲーム会社のデザイナー職で正社員になれるのか?」ということについて、私が見てきた範囲の内容ではありますがお伝えできればと思っております!

正社員になる「意欲」と「素養」が必要

まず最初に2つの条件があります。ひとつめ、そもそもご本人が正社員になりたいという「意志」があるかどうか。意欲がある方にだけ正社員登用を提案しています。ふたつめは、その人に正社員としての「素養」があるかどうか。この「素養」って、一体なんでしょう?

「絵が上手いこと」は「素養」なの?

実は「絵が上手い」だけではゲーム会社の正社員になれません。イラスト制作会社であればそれだけで良い場合もありますが、ゲーム会社はそうではありません。以下のような人材は「正社員になっても活躍してもらえそうだな」と判断しています。(※必ずしもこれだけに限りません)

締め切りを守る人

当たり前じゃない? と思う方もいるはずですが、非常に大切なことです。たとえば「2日後が締め切りです」と伝えた仕事があるとします。これが遅れた場合、社内はどう考えるでしょう?

2.5日で上がってきたら、クオリティによっては許容されるかもしれません。
3日なら「忙しい時期はこの人には任せられないな」と判断します。
4日、予定の2倍の工数がかかってしまうのはもう論外です。(その分野の仕事をするのがはじめて、という場合以外ではほぼほぼありえないことです)

そして、締め切りを破り続けると「もう別の人に任せたほうがいいかな」と考えます。なぜなら、どれだけいいものを作っても、想定よりも工数がかかってしまうと採算がとれないからです。制作のスピードとクオリティのバランスを保つことが大切です。

また、ゲームは様々な職種の方との協力があり形になっています。一人の仕事の遅れが、全体に影響を及ぼすことも少なくありません。原則として、締め切りを厳守することを心掛けましょう。

報連相ができる人

これも社会人としては当たり前のことではありますが、仕事の報連相をきちんとできる方には安心して仕事を任せることができます。

任されていた仕事の進行が遅れている場合は、「遅れます。いつまでにできます」と事前の連絡が欲しいんです。締め切り日当日になってから「まだ完成していません」というのは厳禁です!

事前に伝えてもらえれば、なんらかの対策をとったりスケジュールを調整したりと柔軟に対応することができます。どんなに目の前の仕事が忙しくても、進捗報告は忘れないようにしましょう。

また、仕事が遅れる原因は「何かに悩んでいる」場合がほとんどです。それをきちんと伝えて欲しいと思っています。わからないことや悩んでいることを自分の中だけで抱えてしまう人がいるのですが、だれかに聞けば一瞬で解決できるようなことかもしれません。

新しい技術を学ぶ意欲がある人

ゲーム開発の現場は日々進化しています。プロジェクトごとに必要なツールも変わりますし、新しい開発ツールもどんどん登場します。そのため、新しいものを積極的に学習していける人はさまざまなプロジェクトで活躍することができます。仮にそのツールや技術に興味がなくても、「興味を持つ努力」が出来る方は強いです。

また、円滑に仕事を進めるためには学習意欲だけではなく、中学レベル程度の基礎学力が必要になります。それの有無でツールの習熟速度が大きく変わります。

愛を持って仕事ができる人

制作者自身が楽しんで作っているものは自然とクオリティが高くなり、見ている人の目を惹きます。日頃多くの成果物のチェックを行っていますが、楽しんで作ってくれたであろうクリエイティブは一目でわかります。逆もまた然りです。

愛ってつまり、制作の対象に対して興味を持つことです。なにか仕事を任されたとき、渡された資料だけを見て作るのではなく自分でもネット検索などを活用して追加の参考資料をさがしてみたり。なにを参考にしていいかわからないときは、気軽に相談してくれればいいんです。

だれかに楽しんでもらうには、まずは自分が楽しんで制作に取り組むことから!

ジョブローテーションを行い、色んな人と仕事をする

上述のような意欲と素養がある方には、正社員登用を目指してトレーニングに入ってもらいます。

UI、エフェクト、モーションなど…デザイナーの業務にもさまざまな分野があります。上司やプロジェクトをローテーションし、いくつかのスキルを実務レベルまで身に着けていただきます。

スキルの幅が狭く、特定のプロジェクトでの活躍しか期待が出来ない方は、正直なところ会社としても正社員として長くお付き合いすることが難しいです。そのため、さまざまな上司の下に付きスキルの幅を広げ、どのプロジェクトでも一定以上の活躍が出来る人材になることが求められます。

また、スキルの幅だけでなくどんな人間とも円滑なやり取りができるようなコミュニケーション力も正社員には必要とされています。

ゲーム会社ではさまざまなタイトルを開発します。それぞれデザインや、求められる知識やツールが違います。そのため、多様な現場に対応できることが重要な素養なんです。色々な分野の仕事ができて、仕事上でのコミュニケーションを積極的に取ることができる。あと一押しとして、持っているスキルの中で何か一つ特出したものを身につけることができれば正社員への道が開かれます。

今回は基礎中の基礎をお伝えしましたが、次回は実際にアルバイト採用から正社員になった「かめ」にどうやって正社員になったかを説明していただきます。

4月入社の新人がAWS Certified Solutions Architect-Professionalに合格した話

0

21新卒の串田 匠彌です。先日2021/4/10にAWS認定 Solutions Architect-Professional(以下、AWS-SAP)を受験し、合格することが出来ました。今回は資格勉強を通じて経験したことについて、書き起こしたいと思います。

僕がAWS-SAPを受験した理由

「AWSの受験勉強をするにつれて、クラウドが好きになったから」……と書くと余りにも大雑把なので、自分なりに深堀りしてみました。

・クラウド特有の「元からあるものは使う」という思想に共感したため

・好きな技術を題材として、自助努力の習慣をつけたかったため

前者後者共に語りたいことは多いのですが、今回は後者に関する話と勉強して得た知見を書いていきます。

AWS-SAPでは最も広範な知識が求められるという噂です。

自助努力の有意性

ではなぜ自助努力が必要なのでしょうか?

理由は多々あるかと思いますが、僕は「仕事というものを遊びに変えたかったから」です。日常会話において、聞かれたことに対して適切に返答するということは、然程難しくないし努力する必要はないかもしれません。しかし仕事(特に技術)の話となると、そうも言っていられないと僕は考えています。例えばお客様からの、

お客様「オンプレからクラウドに移行しようと考えているんだけど、そのついででPostgreSQLからMySQLにDBエンジンを変える予定なんだよね。これで何か注意点ってある?」

といった疑問に対して、自分の知識が不足している場合、

ぼく「あーそうですね!完全に理解しました!(分かってない」

という返答になるでしょうし、「わからないことだらけの仕事なんてつまらない」と思う機会も増えることでしょう。これは相手にとっては勿論のこと、自分にとっても大きな損失です。僕はこれを防ぐために、「好きな分野一つで良いから詳しくなれば仕事への理解も深まり、楽しくなるんじゃないか」と考え、AWSの勉強を始めました。

色々とやってきましたが、最近は専らAWSです。

自分の勉強法

SAP本を読み込みました(多分10周くらいしたと思います)。途中で解く問題が足りなくなったのでUdemyもやってみましたが、基本的には書籍です。

AWS認定ソリューションアーキテクト-プロフェッショナル ~試験特性から導き出した演習問題と詳細解説

AWS 認定ソリューションアーキテクト プロフェッショナル模擬試験問題集(全5回分375問)

1周目 巻末の模擬試験以外を読む。問題の正誤よりも、何故この選択肢が正解なのかを理論づけて考える。

2~3周目 上記範囲をテストし、書籍で言及されているサービス事例に関しては理論立てて答えられるようにしておく。覚えられていない部分は付箋を貼る。

4~5周目 書籍で間違っている選択肢や参考程度に書かれているサービスを検索、概要やユースケースを把握し書籍に書き込む。巻末の模擬試験を解いてみる(60%)

ここでAWSの模擬試験を受験する(60%)

  • 6~9周目 基本的には4~5周目と同じだが、書籍の内容は殆ど覚えたため書籍に書き込んだ内容を深堀りする。Udemyの模擬試験を解いてみる(50%~60%)
  • 10周目 試験当日、付箋を貼ったページと書き込みを軽く見直す

最初はどんなサービスがあって、ユースケースは何かということを学習すれば十分と思っていたのですが、勉強していくうちに「あれ……?これ今受けたら受かるかも?」と感じ、途中から受験したいと思うようになりました。ちなみに自分がCLF、SAAを受験した時は、対策本に関して分からない部分が無くなったら1週間後に申し込むという明確な基準があったので、不合格が怖くて先延ばしするということはなかったです。

いざ試験が開始すると、自分でも驚くくらい冷静に挑めました。明確な理由は不明ですが、おそらく「出来る範囲のやれることは全てやったから、合格でも不合格でもそれは完全に正確な今の実力」という認識があり、「全ての知識を総動員させて、悔いなくやってから受かるかな?落ちるかな?とか考えよう」という意識で3時間取り組んでいたからだと思います。

スコアは824でした

勉強した後の変化

・先述のお客様との会話例では、

ぼく「DBエンジンを変えるとなるとAWSではSchema Conversion Toolというスキーマ変換ツールが用意されているので、それを通してからRDSに移行しましょう。もし処理性能に不安があるようでしたら、いっそAuroraに移行するのも手かもしれませんね」

 といったことを考えられるようになった。

・「S3のライフサイクルの設定でコストカット、DDoSにはShield」といった、ベストプラクティスを学習することが出来た

・継続した学習と、難しい課題の達成が出来たという自信に繋がった

あとがき

僕の好きな言葉に、「勝負事を本当に楽しむためには強さが要る」というものがあります。全く以ってその通りだと思います。当たり前の話ではありますが、僕もAWSの知識に関して無敵ではありませんし、毎日わからないこととの格闘です。時々、「自分の努力の成果はIT知識全体の0.001%で、99.999%も知らないことがある。意味ないんじゃないか」と諦観したこともあります。

ただ、その「わからないこと」に直面したときに、深堀りし続けるその場をやり過ごすかによって、数年後大きな差が出ると確信しています。現に2ヶ月前の自分と今の自分で大きく差をつけられましたからね。

「自分は万能でないと悟り、わからないことに苦悩し、それでも自助努力をし続ける」という心構えは、仕事を今より楽しくする一つの在り方ではないでしょうか。

知識を増やし、仕事を「遊び」に変えていきます

次はAWS-SCS(セキュリティの専門知識)でも受験しようかな〜

—(備考)勉強時間—

※下位の資格である、AWS-SAAの知識がある前提での勉強時間です

平日:通勤の1h、家での自習1h

休日:カフェ(9割ドトール)で4~5h

期間:約2ヶ月(2/1~4/10)

追記:せっかくなので全部勉強します

AWS認定資格コンプリートを本格的に目指すことにしました。→ 新卒1年目エンジニアAWS認定フルコンプを目指す その1:Cloud Practitioner 、Solutions Architect – Associate 、Solutions Architect – Professional編

よくわかるAndroid API30のACCESS_BACKGROUND_LOCATION

0

はじめに

Androidアプリのバックグラウンド位置情報取得について説明します。この機能には最近のSDKアップデートによりさまざまな制限が加わり、アプリ設計・開発時に考慮すべきことが増えている一方で、Google Playでは定期的にリリース可能なSDKバージョンの見直しが行われており、SDKバージョンがそれに満たない場合アプリリリース時にSDKアップデートを行わないと配信できなくなるため、無視しつづけることもできません。

Android10(API29)から、アプリがバックグラウンドに入っている時に位置情報を扱う場合に必要となるパーミッションACCESS_BACKGROUND_LOCATIONが追加されました。Android10(API29)の場合は以前と同じように ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION など、既存の位置情報パーミッションと同時に ACCESS_BACKGROUND_LOCATION をリクエストすることが可能でした。

しかし、Android11(API30)にてセキュリティ向上のために既存の位置情報権限と同時に ACCESS_BACKGROUND_LOCATION をリクエストすることが不可能となりました。

ACCESS_BACKGROUND_LOCATIONは、行動記録アプリやナビゲーションアプリなど行動記録を残したり常時位置情報を取得するアプリなどで利用されます。

また、アプリから本体のWi-Fi関連機能へアクセスする場合にも位置情報権限が必要となるため、弊社がアプリ開発を担当している エヌ・ティ・ティ・ブロードバンドプラットフォーム株式会社様の「Japan Wi-Fi auto-connect」のような、アプリがバックグラウンドにいる状態でもWi-Fiへの接続をサポートするアプリでも用いられます。

この記事では、大きく変更が加えられたAPI30にSDKバージョンを引き上げることで発生する位置情報権限にOSバージョンごとの差異を簡単にまとめます。

OSバージョンごとの挙動の違い

Android9(API28)以下での動作

  • 影響ありません。しかし、ACCESS_BACKGROUND_LOCATION の取得状況を checkSelfPermission で確認すると「取得済み」の扱いとなります

Android10(API29)での動作

  • Android9以下からアップデートした場合、アップデート前に位置情報権限を許可していたなら自動的に ACCESS_BACKGROUND_LOCATION も取得扱いになる
  • ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION と一緒に ACCESS_BACKGROUND_LOCATION のリクエストをまとめて行うことが可能です
  • 後述のAndroid11の動作と同じように、ACCESS_FINE_LOCATION・ACCESS_COARSE_LOCATIONを取得した後、ACCESS_BACKGROUND_LOCATION を単品でリクエストして取得する動作も可能です。この場合、「常に許可」を選択できるダイアログが表示されます。

Android11(API30)での動作

  • API29までは、ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATIONと一緒にACCESS_BACKGROUND_LOCATIONのリクエストをまとめて行うことが可能でしたが、API30に引き上げることで、一括ですべてを取得することができなくなりました
  • まとめてリクエストをした場合、ダイアログ等出ずにonRequestPermissionsResultへ失敗の扱いでレスポンスが返されます。そのため、ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATIONを取得した後、別途ACCESS_BACKGROUND_LOCATIONをリクエストする必要があります。
  • ACCESS_BACKGROUND_LOCATIONのリクエストを行うと、ダイアログではなくアプリの権限詳細画面へと遷移し、そこで「常に許可」を選択して貰う必要が生まれました。
  • ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION をリクエストした際、「アプリ使用時のみ」「今回のみ」「許可しない」の3つの選択肢が提示されるが、「今回のみ」を選択した場合は一時的にACCESS_FINE_LOCATIONACCESS_COARSE_LOCATIONを取得できたような挙動をするが、
  • アプリをタスクキルしたり一定時間経過した場合は「許可しない」の扱いになるため、後から「常に許可」の権限を取得しようとしたり、位置情報の取得を試みる場合に注意が必要となる
  • 「アプリ使用時のみ」を選択した場合と「今回のみ」を選択し、「今回のみ」の権限が生きている状態ではどちらが選択されたか判別をつけることができない

上記のことから「常に許可」を取得する場合以下のような対応が必要となります。

  • Android9以下・10・11それぞれで動作差分が生まれることのケア
  • 「常に許可」を取得する場合Android11における、別画面が起動する動作が発生することをユーザーへ注意を行う
  • Android11で「今回のみ」を選択した場合に後から権限が破棄される動作のケア
  • 「常に許可」を取得することの必要性をユーザーに説明をする。
  • ACCESS_BACKGROUND_LOCATIONを使用するアプリをストアへリリースする場合、別途それ専用の審査が必要となる。
  • 審査では適切なACCESS_BACKGROUND_LOCATIONの使用や、その権限が必要であることの説明を正しくユーザーへ告知しているかなどが審査の対象となる。

画面遷移で発生してしまう挙動差異を軽減する

OSバージョンごとに差が生じるため、権限取得時の画面遷移や取得手順で悩むことがあるかもしれません。とくに、Android10でBACKGROUND_LOCATIONのが必須になりはするが、挙動的にはAndroid11と違う挙動をしてしまうため混乱の原因にもなります。しかし、その特性を活かすことでざっくりと「Android9/10に合わせた取得」と「Android10/11に合わせた取得」の2パターン分けられると思います。

「Android9/10に合わせた取得」

「Android9/10に合わせた取得」だと、Android9で1動作で位置情報権限をリクエストしているように、Android10でも1動作でBACKGROUND_LOCATIONを取得してしまおうという動作です。この場合、9以下と10で画面の説明文等変える必要がありますが、すでに9用の権限リクエスト画面がある場合再利用が可能になりお得です。

「Android10/11に合わせた取得」

「Android10/11に合わせた取得」の場合、Android9で1動作で位置情報権限をリクエストするのはそのまま、Android11で必須となるACCESS_BACKGROUND_LOCATIONを分けてリクエストする動作を、Android10でも動作させることが可能なようにAndroid11と同じくACCESS_FINE_LOCATIONACCESS_COARSE_LOCATIONを取得した後、別画面でACCESS_BACKGROUND_LOCATIONを取得するようにしてしまおうという動作です。こちらのパターンは権限の説明等を細かくユーザーへ周知でき、セキュリティ的には良い実装かもしれません。しかし説明内容が複雑になりユーザーの混乱や権限の拒否を誘発したり、Android10の場合は「Android9/10に合わせた取得」に比べて画面数が増えてしまうので少し面倒かもしれません。

最後に

バックグラウンドで位置情報を取得する動作を実装することは珍しいことになるかと思います。また、ストアリリース時の審査では特別な対応も必要となるので手間も増えます。実装に当たる場合、この記事で予め差や動作の特徴について知っていただき、開発の手助けになればと思います。

今回の記事でも使用した動作の確認をそれぞれ試せるようなテストアプリのソースコード(Kotlin)をGitHubにて公開しているのでこちらも合わせて御覧ください。

GaikiKuroda/location_permission_app (AndroidProject Kotlin)

2021年度 アピリッツ入社式、今年は対面で実施しました

0

新年度となり、アピリッツは本日30人の新入社員を迎えました。新型コロナウイルス下で2回目の春。昨年は入社式を控えましたが、今年は感染防止に何が必要であるか、対策がわかってきました。そして、同期や社員と直接会うことでモチベーションを高めてもらいたい。このため、本年度は対面方式の入社式を実施しました。当日の様子をお伝えします。(2021年4月 取材)

今年の入社式は昨年11月に増床した新オフィスのカフェスペースで執り行いました。

感染拡大防止のために間隔をあけて座ってもらいました
会場の飾り付けと入社式の司会進行をおこなった人事チーム

代表取締役社長の和田から新入社員の皆さんにご挨拶。

「競争社会を生き抜く心構え」を呼びかけました

つづけて各役員からもそれぞれメッセージを伝えました。

Webソリューションセグメントの執行役員・西脇は「今日の気持ちをみんなわすれないでね」とエールを送りました
ゲームセグメントの執行役員・八木のごあいさつ。「みなさん、前半に登壇した役員が何言ってたかなんて、もう忘れてるでしょ?」と陽気に切り出し、アピリッツがサービス開発において重視する「ナッジ」について語りました
新入社員からも一言ずつ抱負を語ってもらいました
最後に全員で集合写真。撮影の瞬間だけマスクをはずしました
撮影係の村上さん。これは脚立に登って集合写真を撮ったあと、画像チェックしているところです

ということで、無事入社式が終わりました。これから数週間の研修ののち実務に入ります。どうぞよろしくお願いいたします!

「コードが書けたらオッケーじゃないぞ!」デジタルイノベーション部 西脇・渡辺・浅田 鼎談

0

2021年2月にアピリッツのWebソリューションセグメントは大きな組織改編を行いました。このとき新設されたデジタルイノベーション部(以下、DI部)は、スマートフォン事業、フロントエンドエンジニアリング事業、そしてAIの研究開発チームで構成されています。なぜこの組み合わせでDX推進支援をおこなうのか? 執行役員兼DI部部長の西脇とグループマネージャの渡辺、浅田に今後目指すことを聞きました。(2021年3月 取材)

DXに効く “スマートフォン事業”と“AI事業”

―― DI部の事業内容は「スマートフォン事業、フロントエンドエンジニアリング事業、AIを中心とした技術開発・活用コンサルティング事業」です。なぜAI技術開発がDIに含まれているのでしょうか。

西脇:社内から見ても「なんで渡辺と浅田が西脇のチームにいるんだろう?」と不思議に映るかもしれません。具体的な案件がイメージしづらいのでしょう。ですが、このチームは元々僕が目指していた原点でもありますし、スマートフォン事業とAI事業をサービスとしてお客様にご提供するなら、近い将来、お互いがお互いを必要とするだろうと考えています。

お客様のビジネス上の課題に対して、ちゃんと答えを出せる体制なのです。

たとえば、「ユーザーが快適に使えるサービス」ってどういうものでしょう?  答えは、「人によって違います」です。どれだけターゲティングを絞ったとしても、サービスのユーザーの属性は多様になっているから、一義的な正解を押しつけて、「このカタチについてこい!」という時代ではないですよね。

ユーザーごとの「快適さ」を叶えるためには、ECなら気の利いた商品サジェストだったり、学習なら目標に応じた進度提案だったりといった、コンテンツ面でのカスタマイズが不可欠です。

でも、そうやってコンテンツが多様になるなら、その見せ方の切り口だって多様にしなくちゃいけません。提案コンテンツを、最適な見せ方で、ただし一定の世界観・マインドセットに沿うように……って広く考えると、AI開発が取り組む課題とフロントエンド開発が取り組む課題は、じつは分けて考えないほうがいいんです。

渡辺:はい。そういった大きな視点からのアプリ開発を目指しています。というのも、アプリ開発だけですと価格競争に巻き込まれるからです。個人で活躍する開発者さんも多いですし、プログラミング不要でアプリ開発できるサービスもあるので。

じゃあアピリッツはどう戦うか。

まず、個人開発者ではなく企業にアプリ開発を依頼したいお客様もいらっしゃいます。そういったお客様に対して「アプリ開発もやります、運用保守もバックエンドもやります、データ分析も改善もやります」とアピリッツならではの形でご提案できると、価格競争から距離を置けます。

西脇:そうだよね。で、フロントエンドを開発するうえで「ユーザにとって一番快適なフロントエンドを実現する」と考えると、ただの「わかりやすいUI」では物足りない。見た目や触り心地だけを追求しても、それは「ユーザーにとって一番快適なフロントエンド」とは呼べません。だってユーザーは一人一人違いますから。

パーソナライゼーションやレコメンドが必要になります。そこで「一般的なAI」の出番なんですよね。

AIの得意とすることがDXにつながる

西脇:ちなみに、“AI”って大雑把にいうと「それはAIじゃないよ!」とAI研究者の浅田さんは気になるでしょうが……(笑) 

浅田:いや(笑) もちろん、現在よく使われるパーソナライゼーションもレコメンドもAIだと思っています。ただ、AIという言葉だと意味するところが広すぎてしまって、例えば人間が決めたルールによって判断するプログラムも広義の意味ではAIと言えます。ゲームのAIなどその典型ですね。その一方で「データをもとにアクションを最適化および自動化する」という仕組みであれば、機械学習と呼んだほうが色々誤解がないかなとは思いますね。

つまりキーとなるのはデータであって、データとアクションを紐づけて価値を生み出していくという点が、AIがDXにとって必須だと言われている所以だと思っているんですよね。

渡辺:アプリの挙動については、人間が係数を仕込んで調整する部分も多いですが、そこをAIが行うと速いです。とくにファジーな入力をファジーな出力にするのはAIの得意分野だと思いますね。

浅田:いわゆるABテストは昔からありますが、「フロントが動的に変わって、ユーザーごとに出し分けて、この効果はどのくらいあるか?」といった領域まで設計するとなると、AIでないと難しいでしょうね。

西脇:ですね。そして「このボタンをめちゃくちゃ大きく出したい!」とAIが考えたら、それをちゃんと出力できないといけません。そこで渡辺さんたちのチームの出番なのです。

……ということで、とても理にかなったメンバー構成となっています。

左から浅田、西脇、渡辺。みんな笑顔!

「フロントエンドやりたいっす!」「AIやりたいっす!」って人は多い。でも……?

―― それぞれどんなメンバーがいますか。

浅田:AIラボはいろんな経歴の開発者がいます。スマホ系、ゲーム系、クラウド系……得意分野プラスαが出しやすい環境です。

西脇:そうですね、何かしら経験を積んだ人が集まっています。スマートデバイスチームも、「フロントエンドだけができる人」というのは、いませんよね。

渡辺:あまり意識してませんでしたが、確かにそうなんです。アーキテクチャの使い方がわかる人、または勉強する意欲がある人のチームです。

西脇:ユーザーのワークフロー、データフローを成立させるためのフロントエンドとシステムを作る必要がありますからね。

渡辺:自然と身についてしまうんでしょうね。あと、スマホの開発は他のWebエンジニアリングよりもトライアンドエラーがわかりやすいです。自分が書いたものがデータモデルとの連携含めて成功しているのか、失敗しているのか、成功していてもワークフローとして違和感があるのかないのか、手元ですぐわかる。そこはWebエンジニアリングと大きく違う点ですね。

西脇:よくも悪くもね、スマホで「動いた!」ってわかると、そこで満足しちゃう人がいるんです。もちろん「動いたらうれしい!」ってエンジニアの原点としてはとても大切なことですが、仕事にするなら、その「動いたらうれしい!」にとどまってちゃダメです。だってコマンドが成功しただけですから。データフローのことを考えられない人は、フロントを作るべきではないですね。

浅田:新卒面接でも「フロントエンドやりたいです」という方は多いですね。

西脇:そこを僕らも見誤らないようにマネージメントしていく必要があります。「コードが書けたらオッケー!じゃないんだよ!」ってのは、エンジニアすべてに言えることではありますが。最適なサービスを考えて、作ることがプロです。

渡辺:マネジメント側は、コーディングからアプリ設計、アプリ設計からサービス設計、そうやって地続きに仲間を「プロ」へと導いていきたいです。それって自分の足元だけを見ていると到達できない地点だと思います。

今「普段の生活では興味がないアプリを使って、見つけたことを報告する」というワークをチーム内で毎週やっています。書ける人としてのスキルと同時に、サービスを考える引き出しを増やすためです。

西脇:建築やってる人だって、街で建物みたら「基礎はどうなってるんだろう?」とか構造をみますもんね。

渡辺:はい。「どうやっているんだろう?」ってサービスのキモを考えることは大切です。すぐに真似はできなくても、考えているとやがて閃く。

(このあと、西脇、渡辺、浅田でいろんなサービスの話になる)

新オフィスのフリーアドレスゾーンの電源が気になる三人

技術を何に活かすか?

―― これから、どんな人を仲間として求めますか。

渡辺:自分で仮説を立てて、動けて、実現できる人が向いています。ということは失敗もたくさん経験するということです。そこでへこたれずに泥臭い作業を厭わない人が活躍できます

浅田:「フロントエンドをやりたい」という話に近いかもしれませんが、AIを志望する人は多いです。いま話題ですし、年収も高くなりそうなイメージもあります。でも「なんのためにAIをやりたいか?」を考えてほしいです。突き詰めればAIも単なる技術なので、それを何に活かすか、という視点が重要だと思います。

西脇:機械学習だけで、いいモデルが使えなかったら話にならないもんね(笑)

浅田:そうですね。たとえば機械学習なら、機械学習を使ってどういうことをやりたいかが明確だといいでしょうね。何の分野でもそうでしょうけど、決して楽しい事ばかりじゃないですし、何かしんどい壁にぶつかったときに頑張れるのは明確な目的を持っている人かなと思います。

西脇:昔っから僕は「コードが書けたらオッケー、じゃないよ!」ってしつこく言い続けてきましたけど、同じ志を持ってる浅田さんと渡辺さんが脇を固めてくれたので、もう言わなくても大丈夫ですね。よいサービスを作っていきましょう!!

インサイダー情報の取り扱いに関する社内教育のご紹介

0

アピリッツでは「インサイダー取引」に関する社内教育を定期的に実施しています。こちらの狙いやテストの様子について、CFOの永山と法務の松竹に話を聞きました。(2021年2月 取材)

上場企業の社員として理解しておくべき非常に大切なこと

―― 上場に先立って「インサイダー情報の取り扱いについての研修」と「理解度テスト」を2月上旬に実施しました。こちらの受験率や回答結果はいかがでしたか

永山:「インサイダー情報の取り扱いに関するテストをしますよ!」と社内にお知らせをして48時間経過しました。この時点で300人近くがテストを受け、みなさんほぼ満点を取っています。正直、「えっ、もうこんなに受けてくれたの!?」って思いました。あらためて、アピリッツの社員は協力的だなあと……。

松竹:「はい・いいえ」で回答するタイプのテストで、正解の場合も不正解の場合も「解説」を読んでもらうフローにしました。今回初めてのテストでしたが、こちらが想定していた以上にテストの結果が良かったので、うれしいです。

今後もパブリックカンパニーとして求められる法令順守のための知識を周知するために定期的に「インサイダー情報の取り扱い」や「コンプライアンス研修」など、法律に関する研修をおこなっていきます。

研修資料の一部

永山:労働基準法や業務委託契約の法解釈など、知っておくべきことは沢山あります。なかでも、インサイダー情報の取り扱いは、上場企業の社員として理解しておくべきとても大切な内容です。しかも「インサイダー取引規制関連法令」は意外とわかりづらいし、悪意なく違反してしまうことも多々ある。

「そんなつもりじゃなかった」が通用しない

―― 悪意なくやってしまったことが処罰の対象になる?

永山:そうです。「そんなつもりじゃなかった」が一切通用しないんです。

松竹:自分ではない誰かに売買を委託しても罰則の対象になります。当社株式の場合でも他社の株式でも、情報漏洩した側でも知った側でも、同様に罰せられます。

これからも定期的に法律に関する研修をおこなっていきます

永山:ですから、まずは、社員全員に「みなさんが日常業務で携わっているの情報にはインサイダー情報が満載ですよ」という周知からおこないました。

ほら、友達や恋人や家族に近況報告がてら「いまうちの会社でこんなお客様と取引があるよ」とか「こんどこんなサービスが出るよ!」なんて言いたくなっちゃいますよね。それを聞いた相手が「よーし、じゃあ、業績もあがりそうだし株価があがる前に買って株価が上がったら売却してお小遣いでもかせいじゃおうかな」って株を買うと、アウトです。

―― バレるものなんですね。

永山:バレますね。どうやってその取引に違法性があるかをキャッチしているかまではわかりませんが、「証券取引等監視委員会」がウォッチしています。過去に摘発された事例をみますと、取引金額の大小は関係ありません。しかも、インサイダー取引の調査対象になると、大変やっかいかつ、自分も周りもしんどいです。啓蒙ポスターに「あそこまで調べられると知っていたら絶対に手を出さなかった」というものがあるのですが、正にそれですね。

啓蒙ポスター。メッセージ性強し!

調査対象になると何が起こるか?

―― 調査対象になると、どうなっちゃうのですか。

永山:過去に私が間近で経験した実際にあった“とある人”の例をお話しますね。その人が勤める会社でIR的に大きな発表があった数日後のことです。突然ノーアポで「証券取引等監視委員会」の捜査員が会社にやってきました。いつもどおり会社に出社したら、朝イチで捜査員も会社に来てて、「XXさん、会議室に来てください」と呼び出すわけです。

―― 自分の会社の会議室に、捜査員が待ってる。

永山:はい。数人で待ってました。で、本人は何も知らずに「なにかなー?」って会議室に入ると「我々は証券取引等監視委員会のものです。インサイダー取引規制の調査のためにお話を聞かせてください。調査終わるまでここから出ないでください。携帯電話もすべて出してください」と言われます。

―― あ、いきなり閉じ込められる。

永山:そうです、自分の会社なのに。そして調査が始まるのだそうです。

会社のPCも、プライベートの携帯も、すべてが捜査対象

―― 取り調べで色々と聞かれて「関係ありませんよ」と説明しても部屋から出してもらえない?

永山:出してもらえないでしょうね。根掘り葉掘り、問い質されます。「何月何日に誰にあって何を話しましたか?」とか。「この情報を社内の関係者に共有したのは何月何日でどこの会議室で共有しましたか?」とか。

取り調べの厳しさは、インサイダー取引をやったなという自覚があってもなくても同じです。

もし身に覚えがあるなら、正直に白状しろ!って話ですけど、覚えがない場合が最悪。痛くもない腹を探られるんですからね。

しかも、この取り調べのあいだに、捜査員方がその方のメール履歴、チャット履歴、スケジュールのデータを提出してくださいとなりすべてのものを調査としてもっていきます。個人の手帳やノートもだそうです。

―― 私物も?

永山:はい。「そんなもの、インサイダー取引と絶対関係ないだろうに!」って誰もが思うようなものすら容赦なく持っていかれます。会社のメールも、プライベートのメールも、LINEも、全部捜査されます。PCの中身もフル捜査されますので、音楽の趣味も、動画の閲覧履歴も、まるごと他人に見られます。もうホント丸裸。

ホント丸裸!!

―― はずかしいですね

永山:はずかしいでしょうね。しかも、この捜査のやっかいなところは、捜査結果は教えてもらえないところです。後日逮捕されたら「クロ」ですが、「シロでした!」というお知らせはないんだそうです。「捜査の結果、あなた無罪でしたよ、疑ってごめんなさいね」なんて連絡は一切ないそうです。

―― じゃあ、社内でも疑心暗鬼になる……?

永山:そうです。上司から「お前、インサイダー取引をやったのか?」とか言われちゃう。言われる側も「自分じゃない! じゃあ誰かこの中にインサイダー取引規制に違反した人がいるのか……?」と疑い深くなる。モヤモヤがずっと続きます。仕事どころじゃないでしょうね。

ちなみに、有罪となったらどうなるかも考えてみましょうか。罰金が課せられますし、当然、会社でも処分されます。パブリックカンパニーとしては処分をしないわけにはいかないですから「懲戒解雇」ってこともあり得ます。そして記録が残ります。万が一わたしが逮捕されたら(もちろん絶対やりませんが)、狭い業界ですから、即刻「あいつはインサイダー取引で捕まった」と噂が回ります。ですから再就職は難しいでしょうね。

松竹:履歴詐称は発覚すると解雇されるケースが多いですし、近年は、社員の経歴を調査する会社さんもあると聞きます。

どんなに大切な仲間でも処罰の対象になる

―― 「悪気なくやってしまうケースが多い」のですよね。切ない。

永山:切ないですよ。「ああ、酔っ払って彼女にちょっと話しちゃったんだなあ」とか「親御さんが買っちゃったんだなあ」って、違反者に悪意がないことを会社がわかっていたとしても、どんなに仕事を頑張ってる優秀な社員だとしても、大好きな仲間だとしても、パブリックカンパニーである以上、罰しないといけません。後味がとても悪い。

松竹:しかも法律の条文は複雑ですし、パッと読んで理解できるものではありません。ですから、今回の社内教育では、まず「やってはいけないこと」をわかりやすく伝えました。

永山:法律を完全に暗記しなくても、とにかく意識してほしいんです。「ああコレ会社で言われてたな、気をつけよう」って。

―― 未然に防ぐって大切ですね。

松竹:大切です。トラブルを未然に防ぐという意味では、法務が契約書の条文をチェックすることも同じ役割を担っています。「そんなこと起こるわけがない」に備える必要があるのです。

永山:コンプライアンス遵守のルールや内部統制については「こんなに厳しくして、なんの意味があるの? 面倒だな、チッ」とか言われがちなんですが、その「未然に防ぐ」ことが僕らの仕事です。なにごともない場合はこういった取り組みはなかなか評価されませんが(笑)、何かトラブルが起きたら会社や従業員への負のインパクトは計り知れないんですよね。この手のことは「発生可能性が低いからOK」ではなく、手は抜けません。 パブリックカンパニーである以上、大切なんです。ですからみなさん、これからもご協力よろしくお願いします!

もしインサイダー情報の取り扱いについて不安がある場合は、永山や松竹に相談してくださいね。

大手ECサイト構築|カテゴリページをスマートフォン表示させる方法|

0

※この記事は、楽天市場、Amazon、Yahoo!ショッピング、BASE、Shopifyといった、大手ECサイトの店舗構築に関わる「web担当者・技術者」の方向けの内容です。

デジタルエクスペリエンス部所属、webディレクターの伊與田です。

最近、大手ECサイトの店舗構築に携わる機会がありました。
噂には聞いておりましたが、やはり管理システムや店舗運営システムにはかなり苦戦をしました。

その中でもダントツで苦戦をしいられたのが、とあるECモールで

カテゴリページをスマートフォン表示させる

ことです。

スマートフォンで閲覧しても「PCのレイアウト」が小さく表示されるだけで、
スマートフォン表示が正しく出来ないのです。

スマートフォン表示イメージ


他のWeb制作者のサイトを参考に、
商品ページの紐づけ・商品ページへの遷移・反映までの24時間待機
を行いましたがなぜかうまく行きませんでした。

その後、再三にわたる公式サポートチャットへの
問い合わせの結果、たどり着いた原因は

カテゴリに紐づけした商品ページが「倉庫」の中にあったから

というモノでした。

つまり、

カテゴリに紐づけした商品ページは「販売中」に

する必要があるそうです。

そうしないと商品ページがECプラットフォームのサーチに引っかからず、
「カテゴリに紐づけされてる商品」扱いがされず、
「なんの商品も無いカテゴリ」と判断され、
「カテゴリページがスマートフォン表示されない」といったコトのようです。


ちなみに「販売中」にしていても、
「サーチ非表示」にチェックが入ってしまっていると、
同様に「カテゴリページがスマートフォン表示されない」のでご注意ください。

大抵の不明点は、公式に提供されている膨大なマニュアルや
有識者のブログ記事で解決出来ましたが、

そんなの分かるワケない

という仕様が、大手ECサイトの管理システムにはちょこちょこ存在しています。

なので、

そんなの分かるワケない

と苦戦しているweb担当者様は、是非一度、
ECサイト構築実績のある弊社までお声がけください。

アピリッツのEC構築支援とソリューションに関する詳細はこちらです

アピリッツ(証券コード:4174) 東証JASDAQスタンダード市場 新規上場!当日はこんな感じでした

0

アピリッツは2021年2月25日に東証JASDAQスタンダード市場へ新規上場しました。証券コードは4174です。上場日当日の様子をCFO永山のコメントを交えつつお伝えします。(2021年2月取材)

緊急事態宣言発令中。でも、ちゃんと上場しました

新規上場日の朝8時半、アピリッツの和田、永山、魚谷、三原が主幹事証券会社であるみずほ証券株式会社様に上場のご挨拶に伺いました。こちらで初値のマーケットアップデートを見学します。

エントランスに集合した監査役の三原と、取締役の魚谷。スーツがすてきです
社長の和田。「緊張はしてないよ」とのことでした

本来であれば盛大に……となるところですが、今は緊急事態宣言が発令中。よって、東証でのセレモニー(鐘をカーンと鳴らすアレです)や会社での祝賀会は、ありませんでした! ですので、「せめて……」ということで、みずほ証券さまがセレモニーを開催してくださいました。

みずほ証券株式会社の吉田さまと記念撮影
新規上場を見届けたあと、みんなで記念撮影
記念品の地球儀。「セカイに愛されるインターネットサービスをつくり続ける」というアピリッツのスローガンにあわせて選んでくださったそうです。すてきな贈り物です

このときどんな気持ちだったか、CFOの永山に聞きました。

セレモニーがないのは残念でした。「上場した」といっても実感はなかなかなわかないものですが、役員だけでなく過去から当社の歴史を築いた人たちみんなでセレモニーに参加して今までの苦楽を思い出しながら、未来に思いを馳せることで心機一転するのですが、その機会がなかったので。ただ、みずほ証券のセレモニーを通じて、初値のマーケットアップデートを見て注文が入っていく様は正に今までと違うステージにきたんだなあと感じることができました。

オフィスはお花と祝電と記念品がたくさん

ちょうどそのころオフィスでは朝からお祝いのお花や電報が続々と届いていました。ありがとうございます!

受付に入りきらず、廊下の奥までずっとお花がならんでいます。ありがとうございます!
みずほ証券さまから真っ白で大きな胡蝶蘭、そしてみずほ銀行さまからはブルー(みずほカラー!)の胡蝶蘭
帰社後、新規上場の記念品として東証から贈られるレリーフと木槌ではしゃぐ和田とCFOの永山

そして東証へ。ストックボイス出演、記者会見

午後から東京証券取引所に移動し、和田がTV番組「ストックボイス」に出演し、番組出演後は和田と永山の両名で「兜倶楽部」にて記者会見をおこないました。どちらでもアピリッツの事業内容と成長戦略についてお話しました。

木槌と盾で盛り上がったあと、東証に向かう和田と永山
放送終了後

今回は記者会見やストックボイスの出演でしたが、今後も様々な機会に投資家やそれ以外の人へも当社が知れ渡っていきます。正に上場した事がきっかけですね。
また、記者会見の質疑応答や、日々IRへ問合せが入ってくる中で感じるのは世の中のDX化の波の中で、Webソリューション事業が果たす当社の役割、またオンラインゲーム事業では新作などへの期待感など、当社への期待値は非常に高いです。

やりきった感あり。でもここからがスタートです

アピリッツのみんなに知ってほしいのは、非常に当社は期待されていること、また期待の裏側には求められるものが高くなっていくこと、またそういった会社に在籍しているんだって自負と自覚を知ってくれたらうれしいですね。
お客様や投資家などの様々なステークホルダーの高い要求に答えていく中で実は会社も個人も成長していきます。これが経験できるのはまさにこのステージの会社ならではですからお客様も投資家もひいては社員のみんなもハッピーになれるように航海を楽しんで進んでいきたいですね。

これからもアピリッツは「ザ・インターネットカンパニー」という理念に基づき、「セカイに愛されるインターネットサービスをつくり続ける」ことを目指し、企業のDX推進のラストワンマイルを支援してまいります。

「上場して、より良い会社をみんなで作っていきたい」アピリッツ社長 和田順児 インタビュー

0

アピリッツは2021年2月25日に東京証券取引所JASDAQスタンダード市場へ新規上場しました。環境が大きく変わりつつあるアピリッツについて、代表取締役社長執行役員CEOの和田にインタビューしました。(2021年2月取材)

今後10年、急成長が見込める事業環境

―― アピリッツの社長として考える「アピリッツの魅力」は何でしょうか。

まず、事業環境の魅力が挙げられます。

Webソリューション事業からお話しますと、現在はDX(デジタル・トランスフォーメーション)の潮流によって問い合わせが増えています。

我々アピリッツがご提供しているのは、企業のDXのラストワンマイルに対する支援です。

ラストワンマイルとは「企業と顧客との接点」を指します。通常の企業内システムを作るシステム会社さんは多くいらっしゃいますが、この「企業と顧客との接点」に特化した会社は少ないのではと考えています。ですから引き合いが非常に強いです。そういう外部環境の良さがあります。

それにともない、今後10年、会社は急成長していくと考えています。社員数も増えるでしょう。その中において、投資家の皆様には「事業の拡大をご期待ください」とお伝えできます。

そして、社員に対しては「成長する企業の一員として、自分も成長しキャリアを築いてゆく」ことを魅力として感じてもらえれば、よい循環がうまれるのではと期待しています。

次に、オンラインゲーム事業について。ゲーム業界全体で今後10年どうなるかを考えますと、強いIPを持つ大手ゲーム会社は、このまま成長していくでしょう。ですが、スマートフォン用のソーシャルゲーム事業だけの会社がこれからも成長していくかというと疑問です。

当社は、その不透明なオンラインゲーム事業で、受託開発とクリエイター派遣事業に力を入れて、成長と安定化を図ってきました。おかげさまでこの4年間、受託開発やクリエイター派遣事業は、売上が毎年30%増で成長しています。そういった観点で見ると、不透明な環境ではありますが、暫くは安定的な成長が継続できる可能性は高いと考えています。

上場によって成長速度が変わる

―― 上場することで、会社にどんな変化があると考えていますか。

実は、個人的には上場しても仕事や環境に大きな変化はないんじゃないかと考えていました。ですが、いざ上場が決まってからは成長速度が変わってきたのを感じます。「これならもっと大きく成長できる」と思う瞬間が増えているのです。

たとえばお客様からのお問い合わせや、採用の直応募が急増しています。これらは間違いなく成長の源泉となるものです。

―― 和田さんは今後どのようにアピリッツを舵取りしていきたいですか。

当初からの大きな目標として「会社の桁をひとつ上げる(売上、利益、従業員の数)」ことを社内のメンバーと社外の方々にお伝えしてきました。そして、今回の上場によって、その環境が整いつつあると思います。

当初の目標である桁を上げるまでは、自分が責任を持って舵取りを行うつもりですが、そのあと更に大きく成長させるのは、次の誰かに託すかもなと考えています。

「自分だったら会社をもっと大きくできる」という自信を持つ人こそが社長にふさわしいと考えています。ですから、過去の実績や経験に裏打ちされた確かな自信のあるリーダーを求めます。新しい役員体制も必要でしょう。

自分がいたほうがいいのか、他の誰かにバトンタッチしたほうがハッピーなのか、見極めていきます。

―― アピリッツの一員となってもらいたい人物像を教えて下さい。

ポジティブかつ成長意欲のある人ですね。アピリッツでやりたいことが明確にあって、意見交換ができる方に来ていただきたいです。

「自分が頑張れば、自分に返ってくる環境」

―― 今いる部長やGMといったリーダー層にどのようなことを期待していますか。

おそらく数年以内にアピリッツは1000人規模の会社になります。1000人規模の会社で自分たちはどういう仕事をしていたいか。ビジョンを描きつつ、逆算して今から動いてほしいです。

規模の拡大と共に、すべての社員の給与等の待遇を上げていきたいですし、上がっていくべきだと心の底から思っています。そして、給与が上がれば求められる責任や能力が上がります。リーダー層の社員には、そういったキャリアアップの示しとなってもらいたい。

―― 社員全員には何を求めますか?

今の自分たちが高度経済成長期のような環境にいることを意識してほしいです。DXとアフターコロナのなかで、インターネット業界は伸びしろがまだありますし、私達の業績も伸びていくでしょう。つまり社員全員にチャンスがあるのです。

より多くの人が上を目指す環境を作るために評価制度を整えました。「自分が頑張れば、自分に返ってくる環境」としたいのです。先日のオフィス増床の準備を新卒入社の社員たちに任せたのも、そういった意図からでした。受け身ではなく自ら働きかけて良い環境を作っていく。

そうやってより良い会社をみんなで作っていきたいです。やっていきましょう!

※ 2021年2月25日18時追記
投資家向け動画メディア「IRTV」にてアピリッツ代表和田のインタビューが公開されました。当社のビジネスモデルやビジョンについてお話しします。ぜひご覧ください。

masterデータ入力のExcelのポイントと便利機能

0

こんにちは、ゲームデザイン部プランナーの堀井です。
ゲームプランナーには企画書や仕様書の作成、データ入力等の様々な業務があります。この記事では私が行っているデータ入力の業務について取り上げて、作業に慣れていく過程で経験した作業のポイントをお伝えしたいと思います。

私は現在運営プロジェクトにて、masterデータの入力作業を主に行っています。そもそもmasterデータとは、ゲーム内での表示や数値を設定する表形式状のデータのことを指します。基本的にはExcelデータで管理されていることが多いです。データが入力されたExcelデータはCSVファイルに変換されゲームのデータベースに反映されます。

実際の入力ではExcelを使用するのですが、私はExcelが超得意!……というわけではなく、かなりのExcel初心者だったため、作業に慣れるまでとても時間がかかりました。その中で慣れるまでに経験したExcelで作業を行う3つのポイントがありました。

その1.セル同士の関係を知る
その2.シート内外の範囲参照を知る
その3.ファイル間のリンクを知る

この3つのポイントについて、自分が作業する際に使われた便利なExcelの機能を合わせて説明していきます。

その1.セル同士の関係を知る

まずはExcelで何をしているのかを知るために各箇所のセル内を見て回りました。そうすることで中の関数からセルが何をしているかが分かるからです。でも中には関数だらけでぱっと見での理解が難しいことや、そのセルがどこで使われているまでは中の関数を見るだけでは分かりません。そういったセル同士の関係を知る際にとても役に立ったのが「参照先/参照元のトレース」という機能です。

この機能を使うと選択しているセルの参照元及び参照先がシート内に矢印で確認することができます。

選択していたセルから矢印が表示され一目瞭然に

またシート外の参照は矢印の先にある表アイコンを選択すると、リストが表示され確認できます。

選択しているセルの参照先がリストで表示された

これを活用することで複雑な関数や、セルがどこに参照されているかを素早く確認することができました。

その2.シート内外の範囲参照を知る

masterデータは基本複数のデータを管理するものであるため、セル単体だけでなく、列や行、シート単位で範囲的にセルが何をしているのかを理解する必要があります。そんな範囲的な理解の際に一つのプルダウンが障害となりました。プルダウンの機能は任意の範囲に入力されているデータをリストで表示するものですが、担当したmasterでは「名前の管理」という別の機能がプルダウンと併用されていため障害となってしました。

この「名前の管理」という機能は指定した範囲に対して「名前」を設定する機能です。一つの範囲を複数個所で利用する際に範囲の管理を楽にすることや、応用することで1つのプルダウンから数種類のリストを表示することもできます。

応用例である複数のリスト表示:E列の入力で名前を参照できるように入力規則を設定した

この機能を知ることで弊害なくセルの確認ができ、さらには機能の活用によって簡単に範囲的にセルが何をしているのかを知ることができました。

その3.ファイル間のリンクを知る

実際作業する際には関連しているファイルを開き、正しいファイルを参照させる必要があります。ですが関連しているファイルがどれとどれなのかExcelデータを触り始めた初心者には簡単にわかりません。ましてや1つ1つのセル内の関数を確認して関連しているファイルを見極めるのはとても面倒です。そんなファイル間の関係を一目で確認するために使うのが、「リンクの編集」です。

選択したファイルのリンクを確認でき、間違ったファイルのデータを参照していないかなどの確認ができます。間違えたファイルを参照してしまっている場合、ファイル名が同じであれば「リンク元の変更」でリンクを置き換えることも可能です。作業の際に役立つこととして、「ちょっとしたデータを別ファイルでもらったから反映しなきゃ」などのデータのコピペをする際にコピペミスがないか確認できるので便利です。

リンクしているファイルをリストで確認できた

以上3つのポイント

その1.セル同士の関係を知る
その2.シート内外の範囲参照を知る
その3.ファイル間のリンクを知る

をおさえながら作業を行った私は素早くExcel作業に慣れることができました。機能でデータの見方を覚えれば作業自体にも応用が効くはずですし、Excelを改修する際に役に立つはずです。Excelでmasterデータの入力をする際にはぜひ思い出していただければと思います。

読んでいただきありがとうございました。

最近人気な記事