モティオの開発備忘録

ITエンジニアとして働いています。

 

 

3343文字 9983 byteの日本語の翻訳対象文字列(chatgptで作成した文章をつなぎ合わせたもの)で検証

lambda上で

外国語15言語に翻訳

日本語も含む16言語分のs3ファイル作成アップロード

S3から1つファイル更新して編集後アップロード

lambdaのコンソール上からテスト実行

実行時間
7765.72 ms

 

AWS Translate サイズ上限

lambdaからaws translate使おうとしたら...

{
  "statusCode": 500,
  "body": "Error translating text: An error occurred (TextSizeLimitExceededException) when calling the TranslateText operation: Input text size exceeds limit. Max length of request text allowed is 10000 bytes while in this request the text size is 14822 bytes"
}

一度に翻訳できるテキストのサイズ上限が10000byteやった。

CSS設計ポイント

ポイント1 特性に合わせてCSSを分類する

・サイト全体に適用されるべきスタイルはベースグループ

・レイアウトに関するスタイルはレイアウトグループ

・サイト内全体で使いまわしたいものはモジュールグループ

 

レイアウトに関するスタイル

・position(static、relativeを除く)

・z-index

・top / right / bottom / left

・float

・width

・margin

 

モジュール自体にはレイアウトに関するCSS指定は基本的に行わない

 

ポイント2 HTMLとスタイリングが疎結合である

CSSがHTMLに依存していないこと

要素型型セレクターを利用しないことで、HTMLとスタイリングの結びつきを弱める

 

 

ポイント3 影響範囲がみだりに広すぎない

影響範囲のCSSに無駄なスタイリングが含まれていると、新しいモジュールを作るたびに無駄なスタイリングを打ち消すコードを書かなければいけなかったり、影響範囲がつかみにくい。

・スコープを絞る

 なるべく直近の親要素までセレクターに含める

 子孫セレクタではなく、子セレクターの使用を検討する

・影響範囲のCSSに含めるスタイリングは、なるべく最小限にとどめる

ポイント4 特定のコンテキストにみだりに依存していない

モジュールが特定のコンテキストに依存せず、どこでも使えるようになっている

 

ポイント5 詳細度がみだりに高くない

セレクターはクラスセレクターを使用する

 

ポイント6 クラス名から影響範囲が想像できる

 

ポイント7 クラス名から見た目・機能・役割が想像できる

 

ポイント8 拡張しやすい

・マルチクラス設計の採用

・拡張用クラスは、機能・役割に応じて適切な粒度・影響範囲を保つ

 

モディファイアをつける箇所は、変更を加える要素数と一致させるのではなく、提供する機能一つにつき一つのモディファイアを作成する

リセットCSS

ハードリセットCSS

 

HTML5 Doctor Reset CSS

http://html5doctor.com/html-5-reset-stylesheet

css-wipe

https://github.com/stackcss/css-wipe

 

ノーマライズCSS

 

Normalize.css

https://necolas.github.io/normalize.css/

 

sanitize.css

https://github.com/csstools/sanitize.css

wpでリクエストパラメーターの受付を統一したいよ~

ソース内で$_GETで書いたり、$_POSTで書いたりするところが散見されるけど、受けとりぐち及び取得方法は統一したい。

 

add_action('init', 'add_get_value');
function add_get_value() {

    global $wp;

    $wp->add_query_var('test1');

    $wp->add_query_var('test2');

}

 

$test = get_query_var('test1');

 

いろいろ処理が加えられている場合もあるから、その場合は必要な処理をかまそう。

継承より委譲

スーパークラス依存による密結合を避けたい

継承より委譲

委譲とは...コンポジション構造にすること

利用したいクラスをスーパークラスとして継承するのではなく、privateなインスタンス変数として持ち、呼び出す

 

継承を使うとサブクラスがスーパークラスのロジックを使えるようになるため、スーパークラスが共通ロジックの置き場所として利用されがちになる。

継承で無理に共通化すると密結合になるパターンがある。

 

下手に継承を使わず、単一責任原則を重視することが肝要。

値オブジェクトやコンポジション構造で設計できないか検討する。