覚えたことまとめ - (SQL-その1)
今回はSQLについて書いてみたいと思う。
SQLは簡単なものから複雑なものまであるので、
今回は簡単な部分のみの説明を使用と思う。
SQLはプログラム言語の1つで、
主にDB(データベース)に蓄積したデータを操作するものです。
操作も種類自体はそんなに多くなく、
取得、登録、更新、削除、になります。
この言語1つで何かを作るというよりは、
他の言語で使用したシステムに盛り込まれており、
DBとのデータのやり取りを担う言語と認識していれば問題ない。
DB自体も種類が多く、
MySQL、SQLServer、PostgreSQL、Oracleなど種類が多い、
またこの種類が多いため、メソッドの書き方、使用方法が若干異なる場合がある。
自分は経験がないが、大きい会社の場合にその会社独自のDBがあることもあると聞いたことがあります。
先ほど操作の話をしたが、
それぞれの書き方が違く、
取得はSELECT文、登録はINSERT文、更新はUPDATE文、削除はDLETE文、
と言われている。
上記はデータ取得の場合のみでそのデータを登録するためのテーブルを作成する操作はまた別にある。
テーブルの作成はCREATE文、テーブルの削除はDROP文、テーブルの変更はALTER文
になる。
ひとまずはざっくり説明として以上にまります。
終了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
覚えたことまとめ - (platform)
今回は「platform」について話そうと思う。
細かいところまで理解は出来ていないがそこはご愛嬌…
読み方としてはプラットフォームともプラットホームとも言われます。
こいつは簡単にいうとシステムを動かすための土台/基盤みたいなものです。
(むしろ簡単にしか理解できていない)
今は色々なところでシステムが使われていますよね。
例えば家電でも電子レンジや炊飯器にもIoTが利用されていたりします。
最も身近なものでいえばスマホです。
androidスマホを動かすためにandroidというプラットフォームが使用されています。
androidスマホでiosというプラットフォームでは動きません。
(試したこともないし試せないため絶対とは言い切れない…)
このスマホを動かすためのandroidとiosはそもそもが違うため、
プラットホームは違います。(すべてではありませんが)
iosのアプリを作成するのにSwiftというものがありますが、
これはapple製品向けのものになるためandroidには向きません。
作れないこともないですがiosの方が容易に作れます。
ただ、中にはクロスプラットフォームというものもあり、
これはandroidとiosどちらにも汎用的に構築できるものです。
そもそもプラットフォームもかなり種類が増えてきていて、
汎用的なものもかなり多いため何が違うか知らないとわかりません。
(本末転倒な気もしますが…)
Windowsを使用しているPCはメーカーが違えど使用感は変わりませんよね?
でも、WindowsかMacとなると使用感が変わりますよね?
プラットフォームが変わるとそのような違いが出てきます。
今回は書いていてだいぶグダグダというか
本当にしっかり理解できていないと思ったので
いつかもう一度書いてみたいと思う。
今回は以上になります。
終了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
覚えたことまとめ - (.NET Framework)
今回は「.NET Framework」について書いていきます。
Visualstudioを使っていると必ずと言っていいほど「.NET Framework」というワードが出てきます。
.NET Framework とはマイクロソフトが提供している開発や実行ができるプラットフォームになります。
ようはプログラムを実行させるために必要な環境です。
なので開発にとっては切り離せないものになります。
開発の部分に関して少し説明をします。
.NET Framework には開発時における使用頻度の高い機能や新しい機能が既に部品として用意されています。
これは .NET Framework のバージョンによって更新されていきます。
バージョンは複数あり、このバージョンの違いによって挙動が違っていたり、
コードの書き方が変わることがあります。
例を挙げると .NET Framework4より前のものから.NET Framework4に移行した場合、
「HtmlEncode」メソッドと「UrlEncode」メソッドで「'」が「'」「%27」でエンコードされるようになりました。
上の内容は細かく気にしないで良いのですが、
このようにバージョンによって動きが変わってしまう場合があります。
なので既存システムを変更する際にむやみにバージョンを変えてしまうと動かなくなってしまう場合があります。
なので新しくシステムを立ち上げる場合は、
バージョンを検討する必要があります。
簡単だが今回はこれくらいにしようと思う。
終了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
覚えたことまとめ - (ウォッチ)
今回はデバッグで使えると便利、むしろ必要になる「ウォッチ」について書きます。
そもそもウォッチとは何なのか。
簡単にいうと、変数、オブジェクトに何が入っているかを確認するものです。
ソースコードを追ったり、変数にカーソルを合わせればある程度の確認できますが、
入力データやDBから取得したデータを確認する際に確認が容易になります。
特に繰り返し処理を実行する際に便利です。
手順としては、
デバックを実行し、事前にブレイクポイントを貼っておき、
確認した変数に対し右クリックを押してコンテキストメニューを開きます。
すると「ウォッチの追加」があるので選択すると画面下部にウォッチのウィンドウが表示され、そこに追加されます。
こちらに直接記載したり、変更することも可能です。
これができるようになるとデバッグだけでなく、
不具合の原因を見つけやすくなるためテスター、バグ改修の業務には役立ちます。
今回は簡単だけど、これくらいにします。
終了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
覚えたことまとめ - (New)
今回はNew(インスタンス)について書こうと思います。
これはプログラミングを初めてすぐ詰まってしばらく解決できなかったうちの1つです。
よく下のように記載しますが、これは実際分解することができるので分解していきます。
> sample a = new sample();
まずはクラス変数の定義です。
> sample a;
これで変数の定義は完了です。ただこの状態だとまだ使用できません。
次にインスタンスの作成です。
> a = new sample();
これでインスタンスが作成できたので使用することができます。
このインスタンスを行わないと「未割り当てのローカル変数'○○'が使用されました。」とエラーメッセージが表示されます。
ただ必ず必要になるものではありません。
string や int に関してはnewする必要はありません。
そもそもnewをなぜするかというと、
メモリの確保をする必要があるためです。
new することでメモリの確保ができますが、
string や int などは頻繁に使う・・・というか必ずと言っていいほど利用するので、
既にVisualstudio?Framework?でメモリの確保がされているため
わざわざメモリの確保をする必要がないため、new する必要がないのです。
なので新しく作ったclassや、list<T>のように
あくまで定義されているが細かい設定ができるオブジェクトに対しては
new する必要があります。
覚えたての人はこの話を読んでも分からないと思うので、
string等以外はnewする、
「未割り当てのローカル変数~~」というエラーが出た場合は、
new を忘れているのでは?ぐらいの認識で問題ないと思う。
今回はここらへんで終わりにしようと思います。
終了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
新しく知った技術-「Firebase」
今回は新しく知った技術について説明します。
ただ、自分も文章で感じ取ったり、知った部分なので、
今後触ってみようというレベルだ。
今回取り上げるのは、「Firebase」というものです。
これを知ったきっかけは、
某Youtuberが今後はエンジニアが減るのかという話をしているときに出てきた。
なぜそのようなテーマで配信していたかというと、
この「Firebase」というものが出てきたからとのことだった。
じゃあこの「Firebase」がどんなものかを説明していきます。
開発ではバックエンドの構築に時間が掛かってしまい、
且つどのサービスも大体がDBサーバを用意したり、
DBにアクセスするAPIサーバの構築等、色々な作業に時間が掛かります。
そんな中でてきたのがこの「Firebase」です。
この「Firebase」は、今あげたバックエンドの構築や管理をする必要がなくなります。
なぜ必要なくなるかというと、
「Firebase」はGoogleが提供するモバイル/Webアプリケーションのバックエンドサービスであり、クラウドサービスの形態ではBaaSに位置付けられ、
以下のことが自動でできるようになります。
※BaaSとは、スマフォやタブレットなど、モバイルシステムのバックエンド機能をアプリケーションサーバーが代行するクラウドサービスです。
・リアルタイムでクライアント全体の状態を同期させる
・クラウドストレージに写真や動画などをバイナリデータとして保存ができ、
FirebaseやGoogleCloudのどちらからもアクセスできる
・ FacebookやTwitterなどのSNS連携ができる
・様々なプラットホームで動いているアプリケーションにメッセージを送信することができる
などなどがあります。
機能だけを並べてもイメージが湧きませんが、
例えば、スマホゲームを作成する場合、
そのスマホゲームにチャット機能、お知らせ機能、SNSとの連携が含まれているゲームが現在は多いと思いますが、「Firebase」を利用することによって、
そのスマホゲームを作る際に、チャット機能、お知らせ機能、SNSとの連携のバックエンドの構築が不要になります。
これだけでも工数がだいぶ削れるのは分かると思います。
このようなことからエンジニアは減っていくのではと言われています。
ただこの「Firebase」も万能ではないので、
「Firebase」に独自のロジックを構築することはできません。
なので、複雑になった機能に関してはどうしても人の手が必要になってきます。
ここからは個人的な意見ですが、
これからもっと色々ところでBaaS等を使用してコードを書かなくなる可能性はもっと増えてくると思います。
なので、今後はいかにユーザに合った操作性や特質を理解やイメージができ、
それを実現するための術が強みになってくると思います。
なので、今後はそういったところを身につけられれば良いなと思う今日この頃です。
今回は新しい技術の紹介でした!!!!
終了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
覚えたことまとめ - (その他1)
今回は実際の業務で困ったことや大変だったことを書いてみる。
また、今回も前回同様に技術ではなく、業務的な部分の話になります。
つい先日まで請け負いの仕事をしていたが、
そんな中で思ったことや次同じ機会があった際には気を付けようと思うことがある
まず最初はスケジュールだ。
PMの場合は全体のスケジュールの管理、
PLの場合は各作業者の進捗状況を管理する必要がある。
今回自分が体験したのは、全体のスケジュール管理が疎かになった件です。
全体のスケジュール管理が疎かになるとどういうことになるのかを説明する。
スケジュール管理が疎かと言っているが、
具体的にいうと、スケジュールのリスケができていない状況だった。
スケジュールのリスケができていないと次のことが起きる。
・全体の状況が把握できなくなる
・何人日分遅れが発生しているかが把握できなくなる
上記によってスケジュール自体が成り立たなくなり、
先が読めなくなってしまう。
これによってバッファを食いつぶしてしまったり、
工程が終盤にいけばいくほど取返しがつかなくなってしまう。
とりあえず直近で体感したことを書いてみた!!!!!
終了!!!!!!!!!!!!!!!!!!!!!!!