【やりすぎはダメ】仕事で本当に使う英語の略語リスト
一覧のまとめサイトを使いまくると若者言葉だらけのウザい奴になる。
エンジニアがチャットで使う範囲はこのくらいだろう。
頭文字の略語
略語 | 英語 | 意味 |
---|---|---|
ASAP | As Soon As Possible | なるはや |
BTW | By The Way | ところで |
FYI | For Your Information | 参考までに |
AFAIK | As Far As I Know | 私の知る限り |
IMO | In My Opinion | 私の見解だと |
IMHO | In My Humble Opinion | 私個人の(控えめな)意見では |
AFK | Away From Keyboard | 離席 |
DIY | Do It Yourself | 自分でやる |
その他の略語
本当にたくさんあるから人によって使う略語は変わるのだろうが私はあまり使わない。本当にカジュアルな人に対してこんなもん。
略語 | 英語 | 意味 |
---|---|---|
ppl | people | 人々 |
pls | please | 〜をお願い |
thx | thanks | ありがとう |
PHPUnitの逆引きメモ - テストコードの小技
自分の知識整理も兼ねて PHPUnitの使い方逆引きメモ を作ってみようと思う。 結局のところ公式ドキュメントを見ればほぼ全ての詳細が書いてある。
基本的な知識、setUp() / tearDown() / assert などについては既知前提とする。 準備したデータをテストメソッドに順番に流し込んでくれる。 期待される例外をアノテーションに記述すれば例外をテストしてくれる。 環境によるスキップなどは とりあえずスキップしたい場合は以下のようにもできる。 例えば以下の doSomething() メソッドをテストしたいとする。 例えば以下のメソッドをテストしたいとする。 方法1: Reflect を使って一時的にテストコードからのアクセスを可能にさせる 方法2: 対象クラスを継承したクラスを使う phpunit.xml には色々な機能がある。 これらを設定することで、dev,test(CI環境),stagingなど環境にあったテストを実行させることができる。
主にCI開発などではよくあると思う。 「PHPUnitにこういう機能があったな」「こういう書き方があったな」という引き出しを知っておくだけでもテストコードを書く敷居を下げられると思う。
これまでの職場でなんとなく蓄積した知識を書き出してみる。
想定しているバージョンは、
便利機能
テストデータを書く - @dataProvider
公式ページ) データプロバイダ<?php
use PHPUnit\Framework\TestCase;
use Path\To\Something;
class DataTest extends TestCase
{
/**
* @dataProvider somethingProvider <--- ここにデータプロバイダーメソッド名を書くと読み込んでくれる
*/
public function testSomething($a, $b, $expected)
{
$sth = new Something($a, $b);
$actual = $sth->bar();
$this->assertSame($expected, $actual);
}
public function somethingProvider()
{
return [
'case aaa 1' => ['aaa', 1, 0],
'case bbb 1' => ['bbb', 1, 1],
'case aaa 0' => ['aaa', 0, 1],
'case bbb 0' => ['bbb', 0, 3]
];
}
}
例外のテストを書く - @expectedException
公式ページ)例外のテスト<?php
use PHPUnit\Framework\TestCase;
use Path\To\Something;
class ExceptionTest extends TestCase
{
/**
* @expectedException InvalidArgumentException <--- ここに期待される例外を記述
*/
public function testException()
{
$sth = new Something($a);
}
}
特定のテストをスキップする - @require / markTestSkipped()
@require
アノテーション で対処できる。
例えばmysqlに繋げない環境などは以下のようになる。
公式ページ)@requires によるテストのスキップ<?php
use PHPUnit\Framework\TestCase;
/**
* @requires extension mysqli <--- メソッドやクラスに必須条件を記述
*/
class DatabaseTest extends TestCase
{
public function testConnection()
{
}
}
?>
<?php
use PHPUnit\Framework\TestCase;
class DatabaseTest extends TestCase
{
public function testConnection()
{
$this->markTestSkipped();
// 以降のテストは実行されない
}
}
?>
依存メソッドをダミーに置き換える - Stub / Mock
AnotherThing オブジェクトをモックに置き換える。
公式ページ) 9. テストダブル — PHPUnit latest Manual<?php
class Something {
public doSomething(string $str, AnotherThing $anotherThing) : string
{
if($anotherThing->isAvailableToDo($str)){
return $str . " did something";
}
return "";
}
}
class AnotherThing {
public isAvailableToDo(string $str) : bool
{
// check something here ....
return true;
}
}
<?php
use PHPUnit\Framework\TestCase;
use Path\To\Something;
use Path\To\AnotherThing;
class SomethingTest extends TestCase
{
public function testDoSomething()
{
// create mock object.
$mock = $this->createMock(AnotherThing::class);
$mock->method('isAvailableToDo')->willReturn(true);
$something = new Something();
$actual = $something->doSomething('taro-san', $mock);
$this->assertEquals('taro-san did something', $actual);
}
}
?>
小技リスト
private/protected メソッドをテストする - Reflect / Extend
<?php
class Something {
private doSomething(string $str) : string
{
return $str . " did something";
}
}
<?php
use PHPUnit\Framework\TestCase;
use Path\To\Something;
class ClosedMethodTest extends TestCase
public function testDoSomething()
{
$sth = new Something();
$reflectMethod = new ReflectMethod(Something::class, 'doSomething');
$reflectMethod->accesible(true);
$actual = $reflectMethod->invoke($sth, 'taro-san');
$this->assertEquals('taro-san did something', $actual);
}
}
<?php
use PHPUnit\Framework\TestCase;
use Path\To\Something;
class SomethingForTest extends Something {
public doSomething(string $str) : string
{
return parent::doSomething($str);
}
}
class ClosedMethodTest extends TestCase
public function testDoSomething()
{
$sth = new SomethingForTest();
$actual = $sth->doSomething('taro-san');
$this->assertEquals('taro-san did something', $actual);
}
}
環境にあったテストをする - phpunit.xml
ここではphpに関連した項目をいくつかあげる。<?xml version="1.0" encoding="UTF-8"?>
<phpunit stopOnFailure="false" bootstrap="autoload.php" >
<testsuites>
<testsuite name="Project Test Suite">
<directory>./tests</directory>
</testsuite>
</testsuites>
<php>
<ini name="display_errors" value="1" /> ------ ① php.ini を上書きする
<const name="TEST_ENVIRONMENT" value="ci" /> --- ② global constを追加する
<env name="FILEPATH" value="/path/to/file"/> --- ③ 環境変数を設定する
</php>
</phpunit>
終わりに
webエンジニアとして海外転職して1ヶ月経過したので思ったことを書く
webエンジニアとして海外転職して1ヶ月経過したので思ったことを書く。
状況としては、
- ドイツ、ベルリンに就職&移住
- 会社は英語
- 生活はドイツ語(これから勉強する。。。
- ベルリンオフィス450人中、日本人1人
- 全社的にも(1000人以上いるはず)日本人1人説がある
- アジア人がマジでいない
- まだアジアには進出してない会社だからかもしれない
ヨーロッパの多種多様なアクセントの英語が結構きつい
私は基本的にアメリカ英語を勉強して来てたし、アメリカ人の友達と話すことが今までは多かった。もしくはフィリピン英語。耳が完全に甘やかされていたと思う。ロシア英語、ウクライナ英語、ドイツ英語、ルーマニア英語、フランス英語、ギリシャ英語、エジプト英語、などが日々周りで飛び交ってる英語のアクセントといった感じだ。
マジで聞き取れない
3ヶ国語が普通
一つ目の話と被るかもしれないが、多くの人が3ヶ国語以上喋れる状態に劣等感を感じる。母国語と英語と第二言語という感じである。母国語に加え英語はとりあえず喋れる上で、さらに他の言語で談話してる同僚の姿をよく見る。私は2ヶ国語しか今の段階ではコミュニケーションが取れないので、劣等感というのか、カルチャーショックというのか、多少の井の中の蛙感を感じずにはいられない。
これからドイツ語をマスターしていきたい
英語圏のエンジニアの情報収集力が半端ない
英語で難なく情報収集とアウトプットができるだけで、ここまでスピード感が違うのかという衝撃を日々受けている。OSS活動にもなんの敷居もなく質問を投げたり、コミットしたりなどのやりとりをしている姿が見受けられる。業務での困った状況からネットで情報を集めるスピードと得る情報量が私とは全然違う。そりゃ上達するわ、って顔面パンチを食らったような状態だ。
英語力も今以上に身につけていかないといけないなぁ
総括
つまり、言語力はただのツールなので、そのツールを使いこなせないとエンジニアという本業がただの引き算になってしまうな!って感じだ。今の会社はダイバーシティなところでこんな私にも寛大なのでパフォーマンス出せそうだけれど、クビにならないように頑張ろうと思う。。。