とある人事が書く技術ブログ

自分の経験や学びをブログに残していきます!本の紹介なども行ていきます・・・

Flutterについて学ぶ人事 part2

f:id:mitanikohei:20210715080112j:plain

こんばんは!
とある技術人事のサンペイです!

今回は先日エントリーしたFlutterについて、
さらにまとめていきたいと思っています!

Flutterを採用している企業

【株式会社10X】
あまり企業が採用に踏み入っていないDart/Flutterですが、10Xは開発言語を「フルDart」に振り切っているそうです。それまでは、KotlinやSwiftで開発していたものを、全社的にDart開発に移行しています・・・!

Dartに振り切ることへの難しさや、メリットも書いている記事がありますので見ていただければと!!
▼【Flutter採用で“フルDart”体制へ。スタートアップ10Xが「全社で言語統一」を選ぶ理由

求人表を見る中でFlutterを採用している企業もありますが、全社的にDart/Flutterに振り切っている会社は10Xだけかな思います!

しかし、かなりのスピード感をもってFlutter採用が激しくなるような兆しはありますよね・・・!

Flutterの将来性

それではFlutterは実際に将来的にどう伸びそうなのかを見ていきましょう。

トレンド的に以下の記事が参考になると思います! 【React Native経験者がFlutterをさわってみた


React Nativeは人気としての変化はあまり見られませんが、Flutterの伸び率は目を見張るものがあります👍

トレンドとしては伸びてはいますが、逆にFlutterの影はないのでしょうか?

Flutterのデメリットとして以下があげられます・・・!

・人材採用が困難
 Flutter経験者が少ないから
・日本語資料が少ない
・必要なコードがFlutterにない場合は、ネイティブコードを書く必要有 ・FlutterWebはまだ未完成

デメリットもいくつかはありますね!
しかし、今後はドキュメントや、Flutterに関する周辺技術も増えてくることは間違いないので、技術人事としても要チェックだと考えています・・・!

実際にコーディングしたものも、後ほど掲載していきたいですね・・・!

supabaseを学ぶとある人事

f:id:mitanikohei:20210714000346p:plain
こんばんは!
とある技術人事本部のサンペイです!
本日は最近耳にしたsupabaseについてざっくり学んでいきます👍

シンプルにGoを学んでいてもブログとして書くところまでいけてないので、こういった用語系でつないでいます・・・

supabaseとは?

superbaseは様々な機能をクラウド形式でアクセスすることが可能なプラットフォームです。
Firebaseをイメージしてもらえるといいと思います! 【Firebaseって?】

Webの管理画面からDBを作成したり、作成したDBをAPIで取得することができるという優れものです!
各種認証機能も用意されています!

superbaseはFirebaseの代わりとなるといわれているのですが、実際に比較してみましょう!

Firebase Superbase
Database NoSQL postgreSQL
Authentication メール+主要なSNS メール+Google, Github, GitLab, Bitbucket
Storage サポート有 リリース待ち


supabase強味

‐データ構造  ‐FirebaseがNoSQLに対して、supabaseはPostgreSQLを選択している点です!

‐Firebaseも便利なものではありますが、supabaseはRDBをつかっている人には親しみが大きいし、学習コストも低い!

‐管理画面が分かりやすい  ‐Firebaseよりも直感的で、ドキュメントを見ずともデータを簡単に扱えてしまうことも強みです!

superbase見てるだけでも面白そうだし使いやすそう。。。
次の土日休みの際に、Flutterと一緒にsuperbaseも触ってみたいと思いまうす~~!
今日は睡魔がえげつないのでお休みします・・・
おつかれさまでした。。。

FlutterとSupabaseについて学ぶ、とある人事

f:id:mitanikohei:20210713012750p:plain
こんにちは!
とある技術人事のサンペイです!

本日は、ここ数年でおおきな人気を獲得しているFlutterとFirebaseの代替と言われるSupabaseについての概要をまとめていきたいと思います!

【ゴール】
・FlutterとSupabaseの概要を把握している状態
・今後の動向をある程度把握している状態

最初はFlutterだよ

Flutterとは?

FlutterはGoogle社が開発している、オープンソースのアプリケーションフレームワークのことです。

一つのソースで、複数のプラットフォームに対応したアプリを開発可能な便利なFWです!
またUIが美しく作れることも魅力の一つです!

Flutterの特徴

Flutterの特徴は以下の通りです!

・ホットリロードによる高速開発
 -ソースコードを書いた時点でリアルタイムに変更がアプリに反映される機能です。ホットリロードを駆使することで、開発時間を大幅に短縮することが可能となりました・・・!

マテリアルデザインによる豊かな表現のUI
 -高速なレンダリングと表現力豊かで柔軟性あるデザインの実現が可能になりました!

クロスプラットフォーム対応
 -あらゆるOSで動くことが最大の魅力ともいえます!AndroidiOSのみならずWeb上でも一つのソースで動かすことが出来ます・・・!

Dartというプログラミング言語を使用
 -Dartは2011年にGoogleによって開発されたオープンソースプログラム言語です!C言語に似た書き方が特徴的です👍
DartのHPかっこいい・・・

Flutterが人気の理由

なんといっても一つのコードであらゆるプラットフォームで動くことががあげられます!
これまでは
 -iOS  :Swift+Xcode
 -Android:Kotlin+Android Studio
 上記二つのように違うプログラミング言語を使用して開発していました・・・

しかしFlutterを使用することで、
 -Dart+Flutter+Xcode or Android Studio
 上記のような組み合わせで、一つのソースで何種類かのプラットフォームで動作します。

Flutterが実際に使われているプロダクト

実際にどういったプロダクトに使用されているのかを見ていきましょう!

 ‐Google Ads
 ‐eBay
 ‐IKEA

 上記の有名なもの以外でもたくさんのアプリが開発されていれています!
Flutter開発アプリ

Flutterの将来性についても、次回以降まとめていきます~!
Flutterも触ってみたい👍
今回はSupabaseも書くつもりでしたが、長くなりそうなのでここいらで退散します・・・

おやすみなさい・・・

golang開発環境で戸惑る人事

f:id:mitanikohei:20210712010911j:plain
おつかれさまです! とある技術人事のサンペイです!

golangについて手を動かし始めたばかりなのでいろいろ手探り感Maxです。。。
開発環境構築で結構手間どりました・・・
Eclipse頼りが仇となった?かは分かりませんが情けなしです・・・!

環境

golang :1.16.5
VScode:1.57.1
OS  :Windows

開発環境構築ざっくり流れ

golangインストール
【ダウンロード】
VScodeインストール
【ダウンロード】
 Golandはフリートライアルが終了すると料金発生するため却下

環境変数にGOPATH追加

golang拡張機能をインストール

拡張機能の依存パッケージをインストール
 コマンドパレットでGO: Install/Update toolsを検索し全てダウンロード
 デバッガもこの過程でインストール

一通りインストールできたところで詰まった件

テストファイル「hello.go」を作成し、Terminalで実行。実行結果は「Hello, World!」と問題なく出力。

しかしVScodeで実行するとmoduleがないですよというエラー発生。そのため下記サイトを参照にmoduleを作成し実行
▼ 参照
VSCode を使って Go のデバッガーが動くまでの設定をした - Qiita


しかし、moduleは存在しますが実行されないというエラー発生。ここでごちゃごちゃしていると20分ほど時間経過。あーだこーだで下記サイト参考に解決・・・!
▼ 参照
$GOPATH/go.mod exists but should not - Qiita



ここまで行い無事にVScodeでも実行完了!
先が思いやられるようなスタートです・・・👍


おやすみなさい・・・

無限にわきでる技術用語・・・

f:id:mitanikohei:20210711212929j:plain こんにちは!とある技術人事のサンペイです! 今日は、いくらでも出現してくる理解があいまいな技術をざっくりみていきます!

学生さんとお話してる時も、 この技術何だっけ?となる時があるので少しずつでも解消していきます~~!

基本的なものばかりかもしれませんが、温かく見守ってください👍

自然言語処理NLP


自然言語処理はエンジニア採用をしていると、よく見る言葉の一つですが、この内容を自信をもって説明できるかと言われるとそうではありません・・・(勉強不足ですみません)

なので、まとめていきましょう・・・!

自然言語処理(Natural Language Processing)とは、人間の言語(自然言語)を機械で処理し、内容を抽出すること。

・・・???え、なに?

具体的に言うと、 普段のコミュニケーションで使用する「話し言葉」から、論文のような「書き言葉」までの自然言語を対象として、それらの言葉が持つ意味を様々な方法で解析する処理技術のことです!

・・・???ん?

我々が使う自然な言語はあいまいさがどうしても生じてしまいますよね? 例えば、 「黒い目の大きなサンペイ」という言葉一つでも、

「(肌の)黒い、目の大きなサンペイ」
「黒い目の、大きなサンペイ」

このようにあいまいさが生まれます。

人間はあいまいさの中でもコミュニケーションがとれますが、機械が処理するとなるとそうはいきませんよね。

人間万歳・・・!

実際にいつも使っているかな文字予測変換は代表的な自然言語処理を用いた機能です!この機能一つとっても、偉大過ぎる。

自然言語処理を行うためには下記の4つの手順が必要となるので見ていきましょう!

1.形態素解析

形態素解析は文章をそれぞれの意味を担う最小の単位(形態素)に分類し、それぞれを品詞など各種情報を振り分ける作業
▼参考
【形態素解析とは?】

2.構文解析

形態素解析で分割した単語同士の関連性を解析し、単語同士の係り受けを発見し図式化していく作業

3.意味解析

意味解析とは、「辞書」に基づいた意味を利用して、正しい文を解析していく作業。
▼ 参考
【意味解析】

4.文脈解析

文脈解析とは、複数の文章に形態素解析と意味解析を行い、文同士の関係性を解析する作業

機械に文章一つを理解してもらうためにも、このような手順が必要なんですね・・・


実際にどのような場面で活用されているのか見ていきましょう!
・かな文字予測変換
・音声対話システム
テキストマイニング
検索エンジン Google「BERT」

まだまだ多くの場面で自然言語処理は使用されています!
今回は長くなりそうなので、詳しいことは次回以降に持ち越しますが、私たちの生活にも密接にかかわっている技術であることは間違いないですね👍

まずは、概念だけでも覚えていきたいものです。


今回は、NLP以外にも2つほどいく予定でしたが、長くなりすぎるので次回以降に流します!
現時点で150個ほどの理解不十分な技術があります・・・。てか増えていってます💦

1日1つでもいいので、毎日新しい知識を吸収していきましょう!

それではさようなら・・・!

Goの続きを書くよ

f:id:mitanikohei:20210708020932p:plain

昨日の続き


golangのメリット、デメリットについては機能まとめていったので、今日については、なぜWeb系企業でgolangが採用されているのかをまとめてみます !


なぜ、golangがWeb系企業で採用されるのか?


・シンプルな記述だから
・マイクロサービスを開発するのに優れているから
 -マルチスレッドのコーディングが快適に行える
 -開発後の運用性が優れている
 -言語特有の縛りがあり、メンテナンスがしやすい

小さく開発して、PDCAサイクルを速く回す必要がある場合はgolangは最適ということね👍
チームで開発する際に、シンプルな記法っていうことは大きなメリットにもなるよね・・・!

どんな企業でgolangは採用されているのか?


この偉大なgolangは実際どのような企業が採用しているのかを見ていきましょう・・・

サイボウズ
 -働き方改革のパイオニアであるサイボウズ
・マネーフォワード
 -新規サービスでGo言語を使用
Gunosy
 -メイン言語をgolangにしている企業。golangスペシャリストも在籍しており、golangへ力を入れている。
サイバーエージェント
 -われらがサイバーエージェントです。大きなサービスのサーバーサイドでgolangを使用するような動きも見えてきています。

golangまとめ


golangGoogleから生まれた静的型付けのプログラミング言語
・シンプルな記法から学習コストが少ないうえに、チームでの開発がしやすい
・あらゆるAPIを活用して開発する、マイクロサービスを制作することに長けている

スピード感が求められるWeb系の企業にとってはgolangは必須なのかもしれません・・・!
新しいAPIから開発をするのではなく、既存のAPIをかき集めて作るマイクロサービスが今後も重要になるので、golangは間違いなく今後も伸びてくる言語になりそうです・・・。
シンプルにGoogleが押してることも強いけどね!👍

golang使ってみよう!


では、実際にgolangを使っていこうと思います!
まずは、開発環境整えたいというところですが、ここから先はまた長くなるので次回に持ち越します👍

golang大先生強し。
一緒にgolang大先生にあやかっていきましょう・・・!

Goからいくよ👍

f:id:mitanikohei:20210708020932p:plain 皆さん、こんにちは!
本日は、Go(golang)についてまとめていきます。
多くのWeb系企業が採用をしているgolang。なぜそんなに採用されるのか・・・
体系的にまとめてみようと思います。

そもそも、golangってなによ?


Googleから開発された静的型付け言語
Linux, MacOS, Windows, iOS, Androidなどのように様々なOSで使用可能
・高性能、安定性、利便性、お手軽が詰まったプログラミング言語
→「シンプルで、信頼性が高く効率的なソフトウェアを簡単に構築可能な無料で使えるプログラミング言語

こう見たらgolang大先生、優秀すぎやん。

golang大先生の長所


・安全性、保守性が高い
 -型宣言を行うことでメモリ開放忘れが発生しにくい
コンパイラ言語のため処理が高速
・並行処理が得意
 -goroutineが有用
・記法がシンプル
 -複数のエンジニアが関わっても表記がぶれにくい

待て待て、優秀やん・・・。粗さがししましょ。

golang大先生の短所


・シンプルゆえにないものが多い
 -例外処理文法がない:try-catchのような例外処理文法は認めていないなど・・・
 -専用の関数かif文を使用して処理を実装する必要有
・強いライブラリ(フレームワークの不在)
 -django, Larabel, reactのような強いFWがない

シンプルゆえの弱味があるのね👍
例外処理を実装する方法も試してみたい。

golang先生ができること


・Webサーバー構築
 -Goのみで立ち上げ可能のため、Apacheのようなミドルウェアが不在でもOK
・アプリケーション開発
 -Android, iPhoneのようなネイティブアプリの開発も可能
 -Go mobileを使用
・ツール作成
 -CUIで動作するアプリ制作にもGoは最適
 -マルチプラットフォーム対応なので、互換性や依存関係を気にしなくていい

Apache不在がイメージつかない・・・。とりま触ってみよう・・・!
というわけで、Goが人気なのかを明日まとめて、実際にGo触っていきます~!


黒糖飴食べて寝よう・・・。おやすみなさい。