コーディングの命名規則
複数人でソースコードを共有しながらの開発は経験が少ないため、どんな命名規則をつけているのか、githubで公開されているコードや命名規則一覧を公開しているサイトを参考にしながら開発をしています。
データ操作系の命名規則が公開されています。
命名時のポイントも具体的に書かれているため参考にさせていただきました。
昔は辞書から意味を調べて関数や変数名を作っていましたが、長い単語のまま使い、あとから見返してわからなくなることも。。。
なので
ネーミングセンスが皆無な私には、よく下記のサイトを参考にしています。
YouTubeのエンジニアチャンネルさんで公開されている「【初心者向け】クソコードを書かないためのテクニック5選」の内容を見て、関数の名称の意味がわからなかったり、取得がなぜか更新する関数も入ってたりと、私も最初の頃は、同じ間違いをしていたので改めて勉強になりました。
複数人での開発するプロジェクトは、経験者のソースコードが見れる機会もあるかと思うので、命名規則やコーディングスキルが飛躍的に上がりやすい環境なので、他人のソースコードを見る機会も増やすと面白いかと思います。(難関すぎてなにやってるかわからないのもありますが。。。
【Vue warn】Failed to resolve directive: lazy
昨日(2022年6月2日午前中)辺りからエラーが表示され使えなくなりました。
vue-lazyload.jsのバージョンを1.3.3に指定すると正常に動作しました。
//変更前 <script src="https://unpkg.com/vue-lazyload/vue-lazyload.js"></script> //変更後 <script src="https://unpkg.com/vue-lazyload@1.3.3/vue-lazyload.js"></script>
今まで使えてたのが急にv-lazyで指定している箇所全てエラーになってかなり焦りました。(v-lazyの箇所srcに戻しちゃったよ。。。)
【無料レンタルサーバー】気になる箇所を調査
無料のレンタルサーバーがどこまで使えるのか気になったので、
重要そうな箇所を書いてみました。(こちらも随時あればこの記事を更新していきます。)
調べて思ったのは、やはり実運用はできないと思いました。
(SSLが使えないとデータをPOSTしたときに、非暗号化された状態でデータが送られてセキュリティ面やSEOに影響あるため)
個人で使ったりテストで利用する程度になるかと思います。
XFREE(エックスフリー)
StarServer Free(スターサーバーフリー)
【CentOS7】Apache2.4 PreforkからEventMPMに変更手順
久しぶりの更新!
CentOS streamやらAlmaLinuxなど、CentOSの後継がリリースされている中、いまだにCentOS7使ってます。
既存の環境を移行が大変なのでしばらくは7のままかも。
今回は、ApacheのモジュールPreforkの限界を感じつつあるので、EventMPMについて調べてみました。
わからない部分もありますが(検証中と記載した部分)、都度修正していきます。
モジュールの変更
vi /etc/httpd/conf.modules.d/00-mpm.conf LoadModule mpm_prefork_module modules/mod_mpm_prefork.so #↓ #LoadModule mpm_prefork_module modules/mod_mpm_prefork.so #LoadModule mpm_event_module modules/mod_mpm_event.so #↓ LoadModule mpm_event_module modules/mod_mpm_event.so
PHP-FRMのインストール
#PHPのバージョンに合わせる(例ではPHP7.2) yum install --enablerepo=remi-php72 php-fpm #PHP-FPMの起動 systemctl start php-fpm #サービス自動起動 systemctl enable php-fpm
バーチャルホストの設定追加(例:DocumentRoot /var/www/html/)
ProxyPassMatch ^(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/$1 disablereuse=on SetEnv proxy-nokeepalive 1
MPMの設定追加
vi /etc/httpd/conf.d/mpm.conf #↓設定値はサンプルです。 <IfModule mpm_event_module> StartServers 32 ServerLimit 500 ThreadLimit 1000 ThreadsPerChild 1000 MinSpareThreads 100 MaxSpareThreads 1000 MaxRequestWorkers 12000 MaxConnectionsPerChild 500 </Ifmodule>
PHP-FRMの設定
vi /etc/php-fpm.d/www.conf #apache以外で設定していた場合変更(例:sample) user = apache group = apache ↓ user = sample group = sample #子プロセスの最大数を変更(検証中) ;pm.max_children = 50 ↓ pm.max_children = 500 #プロセス再起動値(検証中) ;pm.max_requests = 500 ↓ pm.max_requests = 1000 #memcachedを利用している場合変更 ;php_value[session.save_handler] = files ;php_value[session.save_path] = /var/lib/php/session ↓ php_value[session.save_handler] = memcached php_value[session.save_path] = "「IP:ポート」" #設定反映 service php-fpm reload #設定ファイルにエラーがないか確認 service httpd configtest #Apacheの再起動(ここでEvent MPMに切り替わります) service httpd start
設定確認
#prefork OR Event MPMで動作しているか確認 httpd -V #PHP-FPMのプロセス数 ps aux | grep php-fpm | grep -v grep | awk '{print $6, $10, $11}' #php-fpmのプロセスの件数 ps aux | grep php-fpm | grep -v grep | awk '{print $6, $10, $11}' | wc -l #1プロセス辺りのメモリ使用率 ps aux | grep php-fpm | grep -v grep | grep -v master | awk '{sum+=$6} END {print sum/NR}'
【Swift】iOSアプリ開発メモ
iOSアプリ(ゲーム以外)で良いところ&審査に出す前に注意する点をまとめてみました。
プロジェクト内にPodファイルを設定&設置してインストールコマンド(pod install)をながすことで利用できる。
・例)podファイルの中身 ―――――――――――――――――― platform :ios, '11.0’ target ‘sampleproject’ do use_frameworks! pod 'Alamofire' pod 'SDWebImage' end ――――――――――――――――――
Alamofire:ウェブサイトとの通信で利用
SDWebImage:URLから画像を取得するのに利用
info.plist
必要な機能だけ許可したほうがいいですが、ないとアプリがリジェクトされます。
WKWebViewを使うアプリなら下記の機能は使うかも。
Privacy - Camera Usage Description
↑カメラへのアクセス許可
Privacy - Location When In Use Usage Description
↑位置情報取得のアクセス許可
Privacy - Microphone Usage Description
↑マイクへのアクセス許可
Privacy - Photo Library Usage Description
↑カメラロール内を読み込み
Privacy - Photo Library Additions Usage Description
↑カメラロールに保存
Bundle version string (short)
↑アプリを更新するたびに数値を上げる
1.0->1.1->1.2など
↓参考サイト様
https://neos21.hatenablog.com/entry/2018/06/18/080000
アプリの審査
使用用途がわからないアプリの場合「App Reviewに関する情報」の所に詳細やテスト方法(ログインが必須であればログイン情報)を記載する。
他社のサイトをアプリ内に表示する場合、許可が取れている証明を説明する必要があります。
掲示板などユーザーが自由に書き込めるコンテンツがアプリ内にある場合、第三者が通報できる機能や、速やかに削除ができる対策が取られているかの確認があります。(利用規約必須です)
また、特定の単語(流行り病など)が入ってるとリジェクトされるため全て置き換えるor削除する必要があります。
アプリがクラッシュしたり、見れない画面があると確認が入ります。スクリーンショットは実際に表示されるものが必須(多言語対応している場合、言語ごとにスクリーンショットが必要)
審査通過後
スクリーンショットなど概要欄にある文章も修正もできないため再審査が必要。
審査期間
通常1~2日ほど(朝~昼に審査に出せば次の日の朝には結果が分かりました)
TestFlight
こちらも審査に1~2日ほどかかる。通知のテストが本番と同じ環境でテストできるため(リリース前に確認が可能)
その他
AdMobを使う場合「マーケティングURL」にサイトURLを設定する。
感想
審査チームはアプリの全てをチェックしているとは思えない。(例えば通知部分にバグがあっても通過する)アクセス許可の部分やコンテンツの内容をチェックしているかと思います。
リジェクトされると、英文で何がダメなのか書かれてあるが、Google翻訳で問題なし。添付画像を送ってもらえるパターンもあり。
返信する際には、英文(Google翻訳)と日本語の両方つけて送信しているが、話が通じないなどは今までになかったです。
メタデータの修正であれば、アプリを再度提出する必要はありません。
また修正してないのに審査チームの文面を無視して再申請するとアカウント停止になる可能性があるため必ず返信すること。
通知機能がある場合、年1で証明書の更新が必須(証明書を発行するためにはmacが必要になります。)