コードの良し悪し

こんにちは mtjです

プログラムという物はいろんな書き方があり 結果は同じでも多種多様なコードが生まれます
見やすい、短いコードもあれば 処理速度が早い、メモリ使用率が低いコード等 結果は同じですが 効果は様々なコードがあります。

どのコードが一番良いかを判断するためにはソフトが稼働する端末のスペック、どの程度の時間まで許容できるか できそうか
演算量で言えば 時間あたりのデータ数等様々な情報が必要になります

全てを満足に満たせるコードがあれば良いのですが 演算速度を高めようとすると可読性、負荷が高くなったり等やはり課題は出てきます。
そういった要求スペックを満たすコードを作るのが自分たちの役目だと思ってますし そこがプログラムの楽しさでもあると思ってます。

システムを作る場合にはそういった情報も漏らさず確認、推測していきたいですね

WordPressにて記事を投稿できなくなる問題を解決

先月からブログを投稿できなくなっておりました。
手が空いたので本日調査したところ、無事解決できたので、
以下にまとめます。

#症状
WordPressの投稿画面にて、寄稿者権限でないにも関わらず、「公開」ボタンが非表示となり、
代わりに「レビュー待ちとして送信」ボタンが表示されていました。
「レビュー待ちとして送信」ボタンをクリックするとエラーになり、
投稿はおろかレビュー待ちとして送信もできず。

#解決策
プラグイン Incorrect Datetime Bug Fix (※) をインストールして有効化しました。
※データの日付が ’0000-00-00 00:00:00′ の場合エラーとする設定を無効化するプラグイン
 Incorrect Datetime Bug Fix – WordPress plugin | WordPress.org

#経緯
レンタルサーバーの更新が先月頭にあったのでそれによるものではないかと言う話になり、
レンタルサーバー運営に問い合わせ。

WordPressが古過ぎるのが原因ではないかと言われる。

WordPressの更新は手間なので一旦保留に。

他の解決策を探す。
一番初めに見つかるのはDBの容量不足だが、容量は問題なし。

解決策は見つからないものの、wp-config.phpにて
define('WP_DEBUG', true);
を設定するとデバッグモードとなりエラーログなど出力できると判明。
WordPressで新規投稿ができなくなった原因がプラグインだった | #interest_ae

レンタルサーバーコントロールパネルから wp-config.php を開き、デバッグモードをオンに。

投稿画面を開くと以下のエラーログが表示。
 WordPress database error: [Incorrect datetime value: '0000-00-00 00:00:00' for column 'post_date_gmt' at row 1]
 INSERT INTO …
 …
 VALUES (…,’0000-00-00 00:00:00′,…)

エラー内容で検索して解決策記載ページを発見!
MySQLで設定変えたら、WordPressで投稿時に「Incorrect datetime value」エラーが出たので対処法 – たぬきのぶろぐ

#推測される原因
推測なのですが、おそらくレンタルサーバーの更新によりMySqlのバージョンが更新され、
その際に日付が無効値 ‘0000-00-00’ の場合に
エラーとなる設定が追加されたのではないかと思われます。
しかしWordPressの投稿開始時にDBに仮挿入される初期データ内の日付が、
ログを見るに ‘0000-00-00’ のため、投稿開始時にエラーとなり投稿できなくなってしまったのかと。
その問題となる設定を Incorrect Datetime Bug Fix プラグインは無効化してくれるので、
エラーにならずに投稿開始できるようになったのでしょう。

調べてみたらすんなり解決して良かったです。
毎度のことながら、Webの先人達に感謝!