PHP/Elixirエンジニアのブログ

有益なアウトプットを心がけます。

【Ruby】Rubyの基礎文法3

演算子

Rubyで一般的な計算処理をする場合、以下の様な数式記号が使えます。

・+(加算)

・-(減算)

・*(乗算)

・/(除算)

・%(剰余演算)

#加算
  1000 + 2000
  =>3000
#減算
  3000 - 1500
  =>1500
#乗算
  50 * 40
  =>2000
#除算
  600 / 15
  =>40
#剰余演算
  5 % 2
  =>1

比較演算子

比較演算子は、値同士を比較するときに使用します。

a == b        # a と b が等しい
a != b        # a と b が等しくない
a < b         # a が b よりも小さい
a > b         # a が b よりも大きい
a <= b        # a が b 以下である
a >= b        # a が b 以上である

論理演算子

2値からなる真偽値に対して演算を行うことができる。

a && b               # a かつ b が true であれば
a || b               # a または b が true であれば
not a                # a が false であれば

【Ruby】Rubyの基礎文法2

メソッド

オブジェクトは、メソッドと呼ばれる処理によって自身の形を変えたりすることができます。
Rubyでは、文字列が利用できるメソッドと、数値が利用できるメソッドが定義されています。

☆lengthメソッド

length(レングス)メソッドは文字列が利用できるメソッドで、文字列の文字の数を数えてくれます。
メソッドを利用するには、以下のようにオブジェクトに対してメソッド名(length)を.(ドット)で繋ぎます。

"Hello World".length
=>11
☆lengthメソッド

length(レングス)メソッドは文字列が利用できるメソッドで、文字列の文字の数を数えてくれます。
メソッドを利用するには、以下のようにオブジェクトに対してメソッド名(length)を.(ドット)で繋ぎます。

"Hello World".length
=>11

上の例で=>の後に表示されているのは、「Hello World」の文字数11です。
ここはとても重要なことなのですが、この結果を説明する時、
lengthメソッドは返り値として数値オブジェクトの11を返したという表現をします。

☆文字列と数値を連結してみる

文字列"i am ", 数値28, 文字列" years old."
この3つのオブジェクトを連結して出力します。
しかし単純に+を使って以下のように実行しても、エラーが出てしまいます。。

puts "i am " + 28 + " years old."   #error
  TypeError: no implicit conversion of Fixnum into String

文字列と数値は別のオブジェクトなので、
連結することができないためです。
そこで、to_sメソッドを利用して数値である20を文字列に変換しましょう。

puts "i am " + 28.to_s + " years old."
  i am 28 years old.             
  =>nil

【Ruby】Rubyの基礎文法1

いつもご覧いただきありがとうございます。


本日は「Rubyの基礎文法」について






初学者がどんなものか

ざっくりと理解できるような内容で書いていきます。

文字列

文字列を生成するには、文字を"(ダブルクォテーション)または'(シングルクォテーション)で囲みます。

"Hello!"

文字列の連結

文字列オブジェクト同士を連結させるには、文字列オブジェクト同士を+(プラス)で繋ぎます。

"Hello " + 'World'
=> "Hello World"

数値オブジェクト

数値オブジェクトを生成するには文字列のときのような"(ダブルクォテーション)または'(シングルクォテーション)も必要ありません。

  10   # 整数
  3.14 # 小数
  -10  # 負の値
  puts -3.14 # 数値も出力できる

Linuxってなに?

いつもご覧いただきありがとうございます。


本日は「Linux」について






初学者がどんなものか

ざっくりと理解できるような内容で書いていきます。

 

# Linuxとは

フリーソフトとして公開されているOS(オペレーティングシステム)です。

厳密にはカーネルの一種です。

 

# OSとは

簡単に言うとパソコンの人格です。

Windowsを入れたパソコンは

Windowsだお〜」、

macOSを入れたパソコンは

macだお〜」、となります。

 

パソコンの世界では

Windows

macOS

Linux

スマホの世界では

iOS

Android

が有名です。

 

コンピューター/スマホ全体を管理、制御し、人が使えるようにする役割があります。

 

# カーネルとは

OSの中核部分のソフトウェアを指します。

Linux OSという広義のなかで

Linuxソフトウェアを中心に他のソフトウェアが

連携してOSの機能を果たすというイメージです。

 

Linux」について



かんたんにまとめさせていただきました。




最後までご覧いただきありがとうございました。










 

【JavaScript】Vue.jsってなに?

いつもご覧いただきありがとうございます。


本日は「Vue.js」について






初学者なりに学習した内容を書いていきます。






Vue.jsとは

 Webアプリケーションにおけるユーザーインターフェイスを構築するための、オープンソースJavaScriptフレームワークである。


他のJavaScriptライブラリを使用するプロジェクトへの導入において、容易になるように設計されている。


一方で高機能なシングルページアプリケーション(
SPA)を構築することも可能である。



Vue.jsの特徴

・学習コストが低い


JavaScriptフレームワークは、Vue.jsのほかにもAngularやBackbone.jsなど様々な種類があります。

今は多くの言語、フレームワークがあり、開発現場ごとに新しい技術を習得しなければいけないことも珍しくありません。

しかし、その中でもVue.jsは学習コストが低く、初心者、経験者問わず、すぐに開発に使用することができるという特徴があります。

 また、現在Vue.jsは構造がシンプルなことに加え、人気が非常に高いため、日本語での技術ブログや記事も充実しています。

不明点があった時も情報が充実しているためすぐに調べることができるので、これから学んでみようという方におすすめしやすいフレームワークです。



・開発スピードを早められる

Vue.jsにはDirective(ディレクティブ)という、Viewの要素に付加できる独自属性があります。

ディレクティブを利用することでDOM (Document Object Model)操作をすることができ、

HTML要素の表示・非表示などを柔軟に変化させることができます。

さらに、直接DOMを操作するコードの記述量を減らすことができるため、開発スピードを早めることができます。



・作業の簡易化が可能

Vue.jsはコンポーネント指向でアプリケーションなどの開発を行うフレームワークです。

コンポーネントとはGUI(グラフィカル・ユーザー・インターフェース)のパーツをモジュール化したもののことです。

コンポーネント指向のVue.jsで開発をすることによって、ボタンや入力欄など、

複数の画面で使用するものを“コンポーネント”という単位で区切ることができます。

これによって、再利用性が高くなり、デザインと技術の共同作業の簡易化、また開発スピードの向上を可能にします。



他のフレームワークとの比較

・Angular.js


AngularはGoogleと個人や企業のコミュニティから開発されたJavaScriptフレームワークです。


Vue.jsと同じくSPA開発が可能ですが、気軽に始められるVue.jsと異なり、導入・学習コストが高いため、個人開発には向いていません。


また、Vue.jsはJavaScriptを使用していますが、AngularはJavaScriptではなくTypeScriptというプログラミング言語を使用します。


TypeScriptの学習など、Angularは使えるようになるまでに時間がかかるため、学習コストをかけずにすぐ開発を始めたい人はVue.jsを選ぶのが無難です。



・React


ReactはFacebookが開発を主導している、JavaScriptフレームワークです。


ReactはVue.jsと同じようにJavaScriptで記述することができ、また導入・学習コストもそこまで高くありません。

そのため、個人開発でも使用できるフレームワークと言えます。


しかし、Vue.jsと違いReactの場合、データバインディングがデータから画面(HTML)に行く片方向のみとなっています。

Vue.jsは双方向バインディングのため画面に入力をすればすぐデータにも反映されますが、Reactは画面からデータに反映させることができません。


また、Angular、Vue.jsと比較すると、Reactは日本語での記事や書籍が少ないのが現状です。

ですから、特にプログラミング初心者には、Vue.jsを選択するのをおすすめします。



「Vue.js」について



かんたんにまとめさせていただきました。




最後までご覧いただきありがとうございました。











【JavaScript】JavaScriptのフレームワークってなに?

いつもご覧いただきありがとうございます。


本日は「JavaScriptフレームワーク」について





初学者なりに学習した内容を書いていきます。





JavaScriptフレームワークとは

JavaScriptフレームワークは


下記のようなものが存在します。


jQuery(←使用率No.1)


・Vue.js


・Angular.js


・React.js


・Backbone.js



フレームワークはサーバーサイドと同じ意味?

JavaScriptフレームワークもサーバサイドフレームワークと


まったく同じようなことを当てはめることができるのでしょうか?


 


答えは、「違う」です。



確かに、フレームワークを使えば品質の向上、


そして生産性を向上させてくれることは間違いありません。


しかし、サーバサイドでできることと


クライアントサイドでできることには違いがあり、


またアプリケーションを組む上で求められることも違ってきます。



例えば、オープンソースで提供されているJavaScriptフレームワークの


ほとんどには、サーバサイドのMVCでいうところのコントローラーが存在しません。



これは、JavaScriptの動くタイミングがユーザーからの


リクエストを受け取った後ではなく、


サーバサイドからのレスポンスを受け取った後で


あるからという理由にあります。


(「ユーザーからのリクエスト=イベントの起動」というならば、


イベントの駆動方法がMVCでいうところのコントローラーに当たります)。


JavaScriptにおけるフレームワークとは

一般的に以下の機能が求められます。


Webブラウザ間の互換性を吸収すること


JavaScriptの記述を簡潔にさせ、全体の見通しを良くする機能を提供すること


JavaScriptコーディングの生産性を高めること






JavaScriptフレームワーク」について


かんたんにまとめさせていただきました。



最後までご覧いただきありがとうございました。











【言語設計】機会語/マシン語ってなに?

いつもご覧いただきありがとうございます。


本日は「機会語/マシン語」について




初学者なりに学習した内容を書いていきます。




機会語/マシン語とは

機会語/マシン語(Machine code/machine language)は同じ意味です。


かんたんに要約するとコンピュータの世界で使われている


「0」と「1」を組み合わされて表現されている言葉です。


イメージ: 0110011



コンピュータのプロセッサが直接解釈実行可能な一連の命令群のデータそのものを


コンピュータ・プログラミング言語とみなしたものです。



  プロセッサとは

 プロセッサ (processor) は、コンピュータシステムの中で、ソフトウェアプログラムに記述された命令セット(データの転送、計算、加工、制御、管理など)を

実行する(=プロセス)ためのハードウェアのこと。プロセッシングユニット (processing unit)、処理装置(しょりそうち)ともいう。



「プロセス(process)」+「~する人・物(接尾辞:or)」


→「プロセッサ(processor)」です。



 プロセッサは処理装置の総称で、演算装置、命令や情報を格納するレジスタ、周辺回路などから構成される。

内蔵されるある程度の規模の記憶装置までを含めることもある。プロセッサの中のシステムの中心的な処理を担うものを

「CPU(Central Processing Unit)」、集積回路に実装したものをマイクロプロセッサと呼ぶ。



 機械語とプロセッサの関係

 プロセッサは機械語で書かれたプログラムにしたがって処理を行っている。機械語でのプログラミングには、

機械語とほぼ1対1に対応するニーモニックを用いたアセンブリ言語を使うのが一般的である。

アセンブリ言語で書かれたプログラムを機械語に変換することをアセンブル(する)と言い、その処理系をアセンブラと言う。

アセンブラによるアセンブルに対し、人力によるアセンブルをハンドアセンブルという。



現在において機械語を使用する機会

 今日では、機械語を使わずとも十分なほどコンピュータは高性能になり、またコンパイラの研究も進んでよくできたコンパイラで

あれば場合によっては人より高性能なコードを生成するようになった。


 機械語を直接扱うのは、ユーティリティやライブラリが(まだ)無い新しいプロセッサの場合や対応していない新機能などを使う場合、

プログラミング言語には馴染まない特殊な命令を扱う場合、プロセッサのバグに当たった(等の可能性が疑われる)場合、

何らかの理由でコアダンプを直接解析しなければならない場合、などがある。




「機会語/マシン語」についてかんたんにまとめさせていただきました。


最後までご覧いただきありがとうございました。