polluces

プログラマーとしての経験は長いのですが、まだまだ勉強中です。 それほど頻繁には書けない…

polluces

プログラマーとしての経験は長いのですが、まだまだ勉強中です。 それほど頻繁には書けないかもしれませんが、気に入って読んでもらえると嬉しいので頑張って書き続けていこうと思っています。

マガジン

  • スマート望遠鏡

    SeeStar S50 というスマート望遠鏡を使い始めたので、どの程度の写真が撮れるのかや、使用方法などを書いていきます。

  • C#初心者を卒業しよう

    C# の文法を学んだ人向けに一歩踏み出すきっかけになればと思い、サンプルコード中心に書いています。 詳しい説明はしていませんが、簡単なサンプルを紹介しているので、理解の助けになれば幸いです。

最近の記事

  • 固定された記事

C#初心者を卒業しよう(第5回)リファクタリングその2 Strategy

はじめに 今回は、前回のサンプルプログラムを Strategy パターンを使ってさらにリファクタリングします。Strategy は GoF(Gang of Four) のパターンで、アルゴリズムを容易に切り替えられる様にします。 StrategyCreate() の引数を変更して単純化する protected virtual IDistance? Create(Type convertType) => (IDistance?)serviceProvider.Get

    • 太陽

      初めての太陽撮影 2024/08/04(日曜日)  雲間から太陽が見えていたので、太陽の撮影に挑戦してみた。  太陽だけは、物理的にフィルターを付けてあげる必要があるのだが、電源を切った状態では対物レンズが本体下を向いていて付けられない。仕方なく太陽の方に向けている最中にフィルターを設置した。  導入は全く問題なく、あっという間に太陽を探し出した。 全体像 全体像(デフォルト)を撮ってみたら、結構黒点が映った。 拡大 ソフトの拡大機能を使って黒点付近を拡大してみた。  

      • SeeStar S50 を初めて使ってみて

        購入 下見のつもりでショップに行ったのだが、セールをやっていて少し安かったのもあり、若干衝動的ではあったが買ってしまった。他のスマート望遠鏡と比較して最も安価であった事と、アプリケーションやファームウェアの更新が頻繁であることが決め手となった。なかなかのスペックをもった光害カットフィルターが内蔵されている事も大きかったかも。 セットアップ スマートフォンにアプリケーションをダウンロードして、SeeStar S50 本体と接続してセットアップ。アプリケーションのガイドに従

        • C#初心者を卒業しよう(第7回の解答例)

          プログラム Program.cs using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Hosting;HostApplicationBuilder builder = Host.CreateApplicationBuilder(args);builder.Services .AddTransient<DistanceService>() .AddScoped<Inp

        • 固定された記事

        C#初心者を卒業しよう(第5回)リファクタリングその2 Strategy

        マガジン

        • スマート望遠鏡
          2本
        • C#初心者を卒業しよう
          13本

        記事

          C#初心者を卒業しよう(第7回)Dependency-inversion principle

          はじめに 今回は SOLID 原則の「D」Dependency-inversion principle (依存性逆転の原則)に従ってサンプルプログラムをリファクタリングしていきます。 解説 この原則に従うなら、インターフェースに依存しなければなりませんが、前回そのように作らなかったので、ここでリファクタリングします。 変換種別の入力インターフェースを作成 public interface IInputConvertNumber{ public string? R

          C#初心者を卒業しよう(第7回)Dependency-inversion principle

          C#初心者を卒業しよう(第6回)Single-responsibility principle

          はじめに 今回は SOLID 原則の「S」Single-responsibility principle (単一責務の原則)に従ってサンプルプログラムをリファクタリングしていきます。  今までのサンプルプログラムでは、DistanceService クラスが多くを受け持ちすぎていたのです。今回は DistanceService クラスから Console 入出力を分離します。 解説変換種別の入力を分離する  InputConvertNumber というクラスを新しく作成

          C#初心者を卒業しよう(第6回)Single-responsibility principle

          C#初心者を卒業しよう(第5回の解答例)

          プログラムProgram.cs using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Hosting;HostApplicationBuilder builder = Host.CreateApplicationBuilder(args);builder.Services .AddTransient<DistanceService>() .AddScoped<ToYa

          C#初心者を卒業しよう(第5回の解答例)

          C#初心者を卒業しよう(第3回の解答例)

          プログラムProgram.cs using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Hosting;HostApplicationBuilder builder = Host.CreateApplicationBuilder(args);builder.Services .AddTransient<DistanceService>() .AddScoped<ToYa

          C#初心者を卒業しよう(第3回の解答例)

          C#初心者を卒業しよう(第4回の解答例)

          プログラムProgram.cs using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Hosting;HostApplicationBuilder builder = Host.CreateApplicationBuilder(args);builder.Services .AddTransient<DistanceService>() .AddScoped<ToYa

          C#初心者を卒業しよう(第4回の解答例)

          C#初心者を卒業しよう(第2回の解答例)

          プログラムProgram.cs var service = new DistanceService();service.Run();public interface IDistance{ void Calculate(double diatance); string CreateAnswerMessage();}public class DistanceService{ public void Run() { var convertN

          C#初心者を卒業しよう(第2回の解答例)

          C#初心者を卒業しよう(第4回)リファクタリングその1

          はじめに 今回は、前回のサンプルプログラムをリファクタリングします。 マジックナンバーを取り除く まずは、メートルをヤードに変換する定数を設定しましょう。 public class Const{ public static readonly double METER_TO_YARD = 1.0936133d;} public class ToMeters : IDistance{ private double _yards; private doub

          C#初心者を卒業しよう(第4回)リファクタリングその1

          C#初心者を卒業しよう(第1回の解答例)

          プログラムProgram.cs Console.WriteLine("Please input convert number.");Console.WriteLine("1 : Convert meters to yards.");Console.WriteLine("2 : Convert yards to meters.");Console.WriteLine("3 : Convert meters to feet.");Console.WriteLine("4 :

          C#初心者を卒業しよう(第1回の解答例)

          C#初心者を卒業しよう(第3回)Dependency Injection

          はじめに 今回は前回のサンプルプログラムに DI コンテナを適用してみます。Dependency Injection は依存関係の注入などと翻訳される事が多く、難しそうに感じてしまうと思いますが、現状必須の技術となってきているので、頑張って使えるようになってください。  では、早速始めましょう。 パッケージを追加する まずは、NuGet パッケージを追加しましょう。  ターミナルから、以下のコマンドを入力してください。 dotnet add package Micros

          C#初心者を卒業しよう(第3回)Dependency Injection

          C#初心者を卒業しよう(第2回)Factory Method

          はじめに 今回は前回の Static Factory のサンプルを Factory Method に書き換えます。  Factory Method は GoF(Gang of Four) のパターンで、インスタンスを生成する場所を一箇所にまとめます。 早速始めましょう 前回作成した Static Factory を DistanceFactory クラスに押し込んでしまうイメージです。  ToYards クラス、ToMeters クラスは変更ありません。 var ser

          C#初心者を卒業しよう(第2回)Factory Method

          C#初心者を卒業しよう(第1回)Static Factory

          はじめに オブジェクト指向は分かっている気でも、実際に使いこなせるかどうかは別の話だと思います。 もっと深く理解したいなら、デザインパターンを学んでみましょう。 初心者を卒業するにはもってこいなのではないかと思います。  デザインパターンを個別に使うことはあまりないかもしれませんが、オブジェクト指向を学ぶのには非常に役立つ教材だと思います。 自分でいろいろなサンプルを作成し、練習することで使いこなせるようになるのが良い勉強法だと思います。  ただし、デザインパターンについて

          C#初心者を卒業しよう(第1回)Static Factory