自宅サーバーとVPSでDiscord並に低遅延な通話環境をセキュアで格安に実現する方法 | NextCloud Talk

対象読者 安くNextCloudを構築したい方 ポート解放ができないけど自宅サーバーを公開したい方 NextCloudでの通話環境の構築に挫折した方 概要 自宅サーバーとVPSを用いてインターネット経由の通話ができる環境を格安で構築できた。 遠方に住むFPS仲間の友人とのゲーム通話にはDiscordを使用していたが、代わりに自前の通話を試してみた。 画面共有しても遅延にシビアなFPS出の通話として問題なかったので、良い環境が構築できたのだと思う。 ...

[理解できない人を増やすだけ]オブジェクト指向の三大要素という嘘

対象読者 オブジェクト指向は難しい、と感じている方 オブジェクト指向言語を使っても恩恵を感じられない方 結論 巷では、オブジェクト指向プログラミングを特徴づける要素として以下の3つが挙げられる。 ...

良いコードの原則 ~ヒトの認知的限界「マジカルナンバー4」~

対象読者 オブジェクト指向の原理原則が取っ付きにくい方 ドメイン駆動設計(DDD)などのプラクティスを使用してもコード品質が良くならないと感じている方 結論 コーディングスタイルはプログラマの宗派・思想・趣味嗜好の数だけ存在する。 当然、みんな違ってみんない良い訳ではない。 良い方法はプログラミング原則または無数のテクニックとしてまとめられていたりいなかったりする。 ...

[文法以前の超入門]プログラミングの本質は抽象化にある

対象読者 プログラマの思考法を知りたい方 プログラミングに興味がある非プログラマの方 プログラミング初心者の方 結論 プログラムは実体がなく、イメージしづらい。しかも、横文字の用語も沢山あって、初心者の方にはかなり取っ付きにくい。 なおかつ、コードを綺麗に書くための工夫やら規則やらもある。 ...

[プログラミング]クラスとは なぜ重要?動機やメリットは?

対象読者 以下に飽き飽きした方 「猫クラス、犬クラス」等のしょーもない説明 オブジェクト指向の抽象的で難しい用語 結論 クラスはオブジェクト指向の土台である。しかし、クラスを使う動機やメリットを理解することは容易ではない。抽象的で難しい用語が溢れていて、初心者は圧倒されてしまうからだ。カプセル化、継承、ポリモーフィズム、単一責任の原則、デザインパターン、UMLなど、挙げれば切りがない。 ...

ライブラリとフレームワークの違い ~比喩で分かりやすく解説~

対象読者 プログラミング初学者の方 色々ググってみたが、本タイトルについて理解できなかった方 結論 両者をググったものをまとめると、 ライブラリとは、再利用可能な部品をまとめたもの フレームワークとは、枠組みが予め決まっている部品をあつめたもの と出てくる。 ...

[超入門]例から学ぶ手続き型の限界とオブジェクト指向との違い

対象読者 オブジェクト指向がなぜ必要か分からない方 結論 手続き型プログラミングとオブジェクト指向の違いは以下である。 手続き型プログラミングは中央集権であり、 オブジェクト指向は地方分権である。 手続き型プログラミングでは、クライアント(main文などの関数の呼び出し側)が全てを管理しなければならず、 責任が重すぎる。 故に、柔軟性や可読性が下がってしまう。この問題を解決する手段の1つがオブジェクト指向だ。 ...

[プログラミング]関数とは なぜ重要?動機やメリットは?

対象読者 理解しやすい、良いコードを作りたい方 文法を使いこなすことはできるが、保守しやすいコードを作れない方 結論 関数(function)とは処理をまとめ上げる仕組みである。プログラミングの文法の初級で登場する基本中の基本であり、使い方も簡単だ。 ...