メインコンテンツまでスキップ

「豆知識」タグの記事が9件件あります

全てのタグを見る

要件定義は自己流でもやっておくべき

· 約4分
ootomonaiso
8期生,部長,業務用ITソフトウェア・ソリューションズ班班長

要件定義とは要するに解決してほしい問題に要求される条件です。例えば数学の問題を解くときに、この公式を使って、こういう考え方で、こういう単位で答えを出さなくてはいけないと定義することです。 PCなんかで動作要件が出ているのは動作に必要な環境で、こういう環境を用意してほしいというラインを示しているのです。 STEM部ではソフトウェア開発する時に要件定義をしっかりやっている班は少ないのかもしれませんが、ある程度の方針を固めておくことによって開発が楽になります。

大友内装(粒)式要件定義

自己流要件定義のノウハウを書き連ねておきます

  • 動作環境は?
  • 開発に使用するソフトウェアのバージョンやらフレームワークは?
  • だれを対象とするのか
  • 完成させるのに必要な機能は?
  • 必要になりそうなモジュールや拡張機能、ライブラリは?
  • どういうUIデザインにするか

自己流なので絶対書き方としては正しくないですが、こうやって記述することによって自分が何を作ろうとしているか見つめなおすことができます。

実際に書いてみた

業務用ITソフトウェアの開発するとて書いた書類の書き起こしです 図書館の蔵書管理をするソフトの開発ですね。バージョン書いてないのは当時知らなかったからです。

動作環境

  • Webベース

使用ソフトウェア

  • Java20
  • Spring
  • JDBC
  • Meven
  • html
  • eclipse2022
  • MySQL workbench

対象者

  • 図書館管理者(貸出返却管理)
  • 蔵書検索をする顧客

必要な機能

  • 検索機能
  • ログイン機能(できれば)
  • 貸出返却処理

必要なモジュール

  • Spring Boot
  • Spring security(多分)
  • MySQLドライバ
  • Mevenのドライバ

UI

  • html直打ち

おわりに

完全に見るのは自分だけだったので、検索したり書籍で調べるときに困らないように、単語をピックアップしていく形をとっています。 見るのは完全に開発者で1人開発だったので結構あっさりめに書きました

要件定義、しておくだけで開発難易度が落ちるかもしれません。質問するときにも教えてほしい情報です。まとめてみたらどうでしょうか? よいプログラミングライフを!

正規表現ってなんぞや

· 約3分
ootomonaiso
8期生,部長,業務用ITソフトウェア・ソリューションズ班班長

正規表現って自称しているくらいだから絶対的に正しい表現で書いたプログラムやろ!というわけではありません。残念だったな。 正規表現は記号を使って「こういう条件にも当てはまるかもしれない」といった条件を付けることです

つまりどういうことだってばよ

つまり「大友(半角スペース)内装」と「大友(全角スペース)内装」のように、アンケートなどで名字と名前でスペースを入れるときに半角にする人と全角にする人、スペースを入れない人がいると思います。これは結構かなり大分迷惑で、正規表現を用いて処理しない場合、全角半角スペース、スペースなしはそれぞれ全く違うものとして処理されます。困ったね。

例えばそのままのデータで円グラフを書いてくれと頼むとそのわけわからん表現の差でいちいち項目を作ってくれるというはた迷惑な問題や、きれいな配列のデータがぐちゃぐちゃしてくるという心情的な問題まで、正規表現を使わないとありとあらゆるプログラマやデータ分析をする人のストレスをマッハで増やしていってくれるのです。なんということをしてくれたのでしょうね。

また正規表現はGoogleでのブラウジングでもイケイケに使えます。でも正直意識して使うことはないです。

正規表現を使いこなす利点

人間による表記ゆれの対応がメインだと思います。ブラウザなどで使う場合もありますが、検索アルゴリズムがちゃんとしているので概ねスペースをあけてもちゃんと検索できます。概念として知っている必要はあると思います。ユーザーへの入力をフラグにするときにひどい目にあいます。あいました。人間による表記ゆれや検索をするときはぜひとも正規表現を使ってみてください。

よいプログラミングライフを!

「何もしていないのに壊れた」から学ぶエラー解決法

· 約6分
ootomonaiso
8期生,部長,業務用ITソフトウェア・ソリューションズ班班長

「何もしてないのに壊れた」 PC初心者がつい言いがちなこの言葉はかなり質問されている側としてはイラっとするんですが、何にしせよ質問するときにこちらが解決するための情報を与えられないのは名探偵コナンは裸足で逃げ出し、金田一は110番するレベルの難易度です。これをされたら泣くしかないよね。現に何度も泣いたしさ。

なぜ「何もしていないのに壊れた」を引き起こすのか

恐らく「何もしていないのに壊れた」を引き起こす理由として、全てに共通するのは「全ての操作でバグが発生する恐れがあることを知らない」というところにあると思います。「何もしていないのに壊れる」ということはまず引き起こされるはずがないのです。何かしらの変更を与えてそれが間違っているとエラーが出るのです。 今まで遭遇した「何もしていないのに壊れた」を解決するにあたって、その原因となる理由をいくつか紹介します。やったね。

自分が何をしたか覚えてない

エラーを追うのに必要な「エラーが起きる直前に何をしていたか」が分からないために、どこで何をやらかしたかが分かっていないのがこのケースに当たります。ファイルの書き換え系であれば更新日時を追っかければ解決できるかもしれませんが、Gitを導入していない環境下では、変更されたファイルは分かっても変更内容が分からないのでいともたやすく詰みます。対戦ありがとうございました。しかしながら、プロジェクトに含まれるフレームワークやAPIなどの既存の設定を扱うjsonファイル、xmlファイルなどであれば、プロジェクトファイルをプログラムで作成した場合、別プロジェクトからの移植が可能である場合があります。(21敗)

エラーログを読まない

エラーログが出たとしても「ERROR」の文字に目が行ってしまい、「どんなエラーが出たかの詳細」よりも「エラーが出た事実」を優先してしまう人が多く、情報量の塊のエラーログをないがしろにしてしまう人がいます。そのせいでエラーログを吹き飛ばして「エラーが出た!実行しただけなのに!」と呼ばれることがあります。また、精神的に萎えて流れるようにソフトを落としてしまってエラーログを吹き飛ばしてくれたこともありました。その場合再実行をかけてやればいいのです。大概イライラしてソフト落とす人は逆切れしてくるので精神壊します エラーログほど我々に情報を与えてくれるソースはありません。エラーログを読んで、解決方法を探せばエラーは解決できます。(15敗)

「何もしていないのに壊れた」からの脱却

エラーを解決するためには、、まず自分でエラーログを読む必要があります。 エラーが出てこない場合は特定の動作の後にコンソールに情報を書き出してもらったりするのも有効でしょう。 エラーログを見てどこでやらかしたかわかれば後はもうGoogleで公式ドキュメントを読むなり先駆者の情報を漁るなりChatGPTに聞いてみたりするのも有効です。 エラーログを読んで、自分が何をしようとしているかわかっていれば、試したことなどを伝えて先輩を頼るのも1つの手だと思います。

型宣言って一体何者か

· 約7分
ootomonaiso
8期生,部長,業務用ITソフトウェア・ソリューションズ班班長

C言語を勉強するとまず「型宣言」というものに出迎えられると思う。「型宣言」は要するに、「この変数をどういうものをしまう箱にするか」というもので、家の引き出しを靴下やハンカチと洋服を分けるような働きをする。文字をしまったり、整数をしまったりするように用途に分けるために型宣言を行う必要があります。

なぜ型宣言が必要なのか

まず、プログラムで変数を扱うときに、その変数に代入されるものによって確保するメモリ領域が変わるからです。

メモリ領域とはなんじゃらほい

パソコンを自作したことがある人やタスクマネージャーのパフォーマンスが見れるところ見てニヤニヤしている人も知っているかと思いますが、写真や動画を保存しておくところはメモリではなく、ストレージと呼びます。スマートフォンユーザーだとメモリ=ストレージと呼ぶ人もいますがあれは嘘だ。

メモリには0と1に切り替えられるスイッチが大量に内蔵されています。その数を4GBや16GBと表現しています。メモリには0と1で分けられたデータしか内蔵することができません。数字も文字もメモリで処理をします。1B(1バイト)は8bitなので4GBは34359738368bitになります。34359738368つのスイッチがあることになります。

メモリ領域と型宣言の関係

プログラムでは数字以外にも文字や日付などを処理することもあります。それを2進数にしてメモリで処理をさせる場合に、例えば、数字の「01100001(=97)」と文字の「01100001(=a)」はいずれも同じ数列になってます、データ型宣言によってプログラムに変数の役割を教えてやる必要があります。

C言語では同じ分類をする型に種類があります。例えば整数型に「int」、「long」などと種類があったことを覚えていますか? int型では4バイト、long型では8バイト使えるようになります。

なぜこのように区別されているのでしょうか? 1つめの理由にメモリの使い過ぎを防ぐ目的があります。3Dアクションゲームなど、高負荷なゲームをやったことがある人や、中古でパソコンを買った人ならわかるかと面ますが、メモリは起動しているアプリケーションの量やその負荷によって、どんどん使われていきます。そうしてメモリを使いすぎるとパフォーマンスが落ち、最終的には処理落ちします。もちろんそれは我々の作成するプログラムの例外ではなく、動作させればメモリを使います。そのため、多くのメモリ領域を予約する型を使うとメモリをもりもり使いだします。そのため適切な型を使うことが推奨されているのです。 2つめの理由は処理速度を向上させるためです。塵も積もればなんとやら、使うメモリを節約すればその分読みだす必要のあるメモリの量が減ることになります。一番大きな理由は1つめの理由ですが、主にハードウェアとしての理由になります。

でも最近のパソコンってメモリ多いじゃん

ごもっともです。昨今は安価でメモリ領域の大きなメモリを購入できます。そのためこのように型を分けるのは慣例化している部分があります。しかし古のコンピュータのメモリ領域は今のメモリと比べれば米粒と北海道レベルで違います。もちろんその分メモリをたくさん使う超弩級ソフトウェアがリリースされているのもまた事実です。やはりこのように大きなメモリがあってもそれが必要とされるほどメモリもぐもぐソフトウェアが開発できるようになっている以上、ちゃんとデータ型を気にするといいと思います。

おわりに

要はデータ型は主にハードウェアのメモリを効率よく、かつメモリのデータをしっかり使えるようにするための先人の知恵だとわかったかと思います。 これで「データ型 なにをつければ いいのかな」を解決できると思います。良きコーディングライフを!

ディレクトリーってなんだ

· 約4分
ganondorofu
9期生,IT班の圧倒的仕事マン

コンピューターを使うとき、ファイルやフォルダーを整理する方法として「ディレクトリー」という概念があります。これについて中学生でもわかるように説明しろとchatGPTに頼んだので解説します。

ディレクトリーって何?

基本的な定義

ディレクトリーとは、ファイルや他のディレクトリーをまとめて整理するための場所です。私たちが使う「フォルダー」と同じ意味です。コンピューターでは、ファイルを見つけやすくするために、ディレクトリーで整理します。

フォルダーと同じ意味

日常生活で使うフォルダーと同じように、ディレクトリーもファイルをしまっておく場所です。例えば、学校の授業ごとにノートを分けるように、コンピューター上でも科目ごとにファイルをディレクトリーで整理できます。

ディレクトリーの使い方

ディレクトリーの作り方

ディレクトリーを作るのは簡単です。コンピューターの中で新しいフォルダーを作る方法と同じです。

Windowsの場合

  1. デスクトップやエクスプローラーを開きます。
  2. 右クリックして「新規作成」から「フォルダー」を選びます。
  3. フォルダーの名前をつけます。

Macの場合

  1. Finderを開きます。
  2. 上部のメニューから「ファイル」→「新規フォルダー」を選びます。
  3. フォルダーの名前をつけます。

ディレクトリーの名前のつけ方

ディレクトリーの名前は、何が入っているか分かるようにすると便利です。例えば、学校の科目ごとに「数学」「英語」「理科」などの名前をつけると良いでしょう。

ファイルをディレクトリーに入れる方法

作成したディレクトリーにファイルを入れるには、そのファイルをドラッグ&ドロップするだけです。ファイルをディレクトリーに入れることで、整理整頓がしやすくなります。

ディレクトリーの構造

親ディレクトリーと子ディレクトリー

ディレクトリーの中にさらにディレクトリーを作ることができます。元のディレクトリーを「親ディレクトリー」、中に作ったディレクトリーを「子ディレクトリー」と言います。

  • 学校 (親ディレクトリー)
    • 数学 (子ディレクトリー)
    • 英語 (子ディレクトリー)
    • 理科 (子ディレクトリー)

階層構造

ディレクトリーは階層構造を持っています。上の例のように、ディレクトリーの中にさらにディレクトリーを作ることができます。これは大きなファイルシステムを効率的に管理するのに役立ちます。

まとめ

ディレクトリーは、コンピューター上でファイルを整理するための重要なツールです。正しく使うことで、必要なファイルをすぐに見つけることができ、効率的に作業を進めることができます。みなさんもぜひ、自分のコンピューターでディレクトリーを使ってファイルを整理してみてください。

勝手お勧めソフト

· 約6分
ganondorofu
9期生,IT班の圧倒的仕事マン

なんかいろいろやりまくってる筆者が勝手にお勧めするアプリ

ファイル系

win rar

別に7zipでいいけどなんとなくrar

diskinfo

まずい!Cドライブの容量がない!ってときに使われてるファイルを割合で表示してくれるので簡単に要らないファイルを消せます。

縮小革命

画像の縮小・拡大や透かしの追加などいろいろを簡単にできます。

ブラウザ系

Brave

Youtubeの広告うぜぇみたいな人はこれ使うと一気に広告消えます。スマホと連携すればパスワードとか同期できてとっても便利。

Chrome

拡張機能

Google・DeepL翻訳

Braveのような最初から翻訳機能がついていないブラウザを使っている場合翻訳拡張機能を入れることをおすすめします。

Volume Master

ブラウザのタブごとに音量が調整できます。

Youtube Dislike return

かつてYoutubeに消された低評価数を復活させます。

普通のブラウザ。Edgeなんかよりはましなのでとりあえずこだわりがなければこいつ使っときましょう。

コミュニケーション系

Discord

ゲーマー御用達。自分だけのサーバー作ってスマホとパソコン間のやり取りができて便利。Lineと違ってアカウント消えない限りトークも消えない。

Line

みんな大好きLine。パソコンにも入れとくと自分専用のグループやkeepメモを使ってスマホとパソコン間でファイルのやり取りができるので便利。

Teams

学校とか職場とかのやり取りでよく使われる。

Zoom

主にビデオ会議で使われる。オンライン面接や授業で使うことがあったりするので入れておくと今後使うかも。

クリエイター向け

ゆっくりムービーメーカー

初心者でも簡単に動画が作れます。ゆっくり動画作りたい人はどうぞ。ゆっくり動画以外も作れます。

Blender

3Dモデリングソフト。以上。

Gimp・FireAlpaca

画像編集できます!詳しくは調べてください!あんま使わないので知りません!

Audacity

音声を編集できます。トリミングして一部だけを使ったり、音楽つなぎ合わて耐久動画作ったり(私用のみ)いろいろ使えます。

開発向け

サクラエディタ

winの標準メモは使いづらいって人は自分のお気に入り探すといいです。

ngrok

これらのツールは、ローカル開発環境で実行されているサーバーを、一時的にインターネット上でアクセス可能にするために使用されます。WEBとかマイクラとかそういうやつを外からアクセスできるようにするやつですね。

Visual Studio・VScode

こいつに関しては特にいうことないので拡張機能を紹介

Github Pull Request

GithubのプルリクをVSCode内で完結できます。

Discord Presence

今VSCodeやってんぜイェイって自慢したい人向け。

Git Graph

ブランチを見やすくできます。僕には見方は全然わかりませんですがかっこいい。

Japanese Language Pack

VSCodeを日本語化できます。

その他

OBS

録画や配信に使えます。ゲーム録画したいとか何かのやり方を録画したいときは使うと便利。

連打君

スタンプで連打したーい、ゲームで連打したいって人はおすすめ。規約に反している可能性あるのでしっかり確認して自己責任で使ってください。

Poewr Automate Desktop

天下のMicrosoftが出してる自動でいろいろやってくれるフローを作ることができる。ゲームの周回からwebやExcelなどの作業を自動化したりできます。連打君と同様ゲームで使う場合は規約を確認して自己責任で。

Chrome Remote Desktop

外からスマホやパソコンから家のパソコンを操作できます。厳密にはブラウザ拡張機能ですがまぁアプリみたいなもん。

NPE

ノートン野郎はうるさいですがこいつは常駐しないでスキャンしたい時だけスキャンしてあとは黙っててくれるのでこいつ大丈夫かな?みたいなファイルがあるときはこれでチェックしてみるといいかも。

Lively wall paper

壁紙をアニメーションさせたりマウスでいろいろできるようにできます。お金がある人はWall Paper Engineもあり。転機を表示できる奴は少し便利かも。

GitHub Educationの登録方法

· 約5分
ganondorofu
9期生,IT班の圧倒的仕事マン

GitHub Educationって何?

GitHub EducationはGithubの学生限定プランです(そのまんま)。

GitHub Educationの何がいいの?

なんと通常お金がかかるGitHubプランが無料で利用できます。

alt text

さらにこれだけではなくなんと通常月額10ドルかかるコーディング生成ai GitHub Copilotが無料で使えます。

ほかにもたくさんできることはあります下のURLを参照してください。

https://education.github.com/pack/offers

どうせ大学生だけでしょ?

なんと13歳以上の中学生から大学生まで使えます。

どうやって登録するの?

必要なもの

  • スマートフォン
  • 学生証(学生であることが証明できる書類)
  • GitHubの個人アカウント
  • 学校内にいる(位置情報で学校内にいるか調べられます)

手順

1. GitHubの設定から2段階認証を有効化する。

https://github.com/settings/security 上のリンクから設定にアクセスしてGoogle Authinticatorをスマホに入れて設定してください。

2. Billing informationを入力する。

https://github.com/settings/billing/payment_information

ここで本名や住所を登録しないと何回申請しても通りません。

alt text

First name:名

Last name:姓

Address,City:住所

Country/Region:国

Postal/Zip code:郵便番号

姓名を逆にしないように注意

3. https://education.github.com/learner/learn にアクセスしGitHub Educationに参加をクリックする。(学生証のアップロードが必要なのでスマートフォン推奨)

alt text

4. Studentを選択して学校名を入力

alt text

学校名を英語で入力して下さい。

Aichiあたりまで入れると出てくると思います。愛知県立と書いてあるほうでも書いてないほうでも通りますが専攻科と間違えないようにしてください。

次の画面に進むときに位置情報の使用許可を問われると思います。許可して下さい。

alt text

5. 学生証のアップロード

Take a pictureを押したらカメラの使用許可を問われると思うので許可してカメラをオンにしたら学生証の全体がはっきり映るように写真を撮ってください。

謎にアウトカメラが使えない(筆者の実体験)ことがありどうあがいてもインカメじゃ無理だと思ったら友達やら先輩やらにスマホを借りましょう。

alt text

Proof typeは1番の学生証を選択しましょう。

alt text

記憶が正しければこれで終わりです。

6. これから

早ければ数分で承認されます。

https://education.github.com/discount_requests/application このページの右のほうにApprovedと緑色で表示されれば承認されています。

Rejectedと赤色で表示されれば何かの情報が不十分/不適切なのでメッセージを確認して情報の修正をしてもう一度申請してみてください。

alt text

数日たつとメールが届き上のサイトのApprovedが紫色に代わります。

alt text

こうなればGitHub Educationプラン適用完了です。

GitHub CopilotはPro会員になってから数日かかります。

利用可能になればまたメールが来ます。

おわりに

GitHub Educationについては以上です。

それではよいコーディングライフを!

よくある問題

· 約10分
ganondorofu
9期生,IT班の圧倒的仕事マン

初心者がやりがちなミスについてまとめました。

危険

何もしてないのに壊れることはありません。むやみに何もしてないのに壊れた!とかいうのはやめましょう。 また人に聞く前にいったん自分で調べましょう。それでもわからなければ人に聞きましょう。

基礎編

capslock・numlock

パスワードちゃんと打ってるのにログインできないって時は確認しましょう。capslockはshiftを押しながらその上のキーを押すことで解除できます。numlockはテンキー(電卓みたいなとこ)のnumlockというキーを押せば治ります。

充電してきたのにバッテリーがない

シャットダウンせずに画面だけ閉じてませんか?その状態だと少しづつバッテリー減りますよ?

wifiがない

デスクトップの場合基本無線で接続できません。(全ノートPCが可能というわけではない。)無線LANカードか子機を買いましょう。 Bluetoothも同様です。

画面がつかない

バッテリーはちゃんとありますか?いったん充電端子を刺してみましょう。

水をぶっかけてしまった

運よく動いていてもぶっ壊れる可能性があるの作業中のデータだけ保存してすぐにシャットダウンして電源コードを抜きましょう。そしたら水分をふき取りしばらく乾燥させます。慌てて起動させてもしまだ水分が残っていた場合ショートして壊れる可能性があります。十分に乾燥させたら電源を入れ起動すればバックアップを取りましょう。何もわからなければ無理に解決しようとせず修理屋に頼みましょう。

インストーラーをダウンロードして実行しても何も起こらない

パソコンでアプリをインストールするときはスマホと違ってワンタップではできません(一部を除く)基本的に規約の同意だったりショートカット作成のyes/noだったりインストール先だったりなどの設定をするウィンドウが出てきます。このウィンドウでいろいろチェックしたりして次へを繰り返すとインストールできます。

アプリをインストールしようとしても失敗する

  • 空き容量がない
  • 管理者権限がない
  • 既にインストール済み

失敗する場合大体上記の理由でインストールが失敗します

空き容量がない場合はdiskinfoなどで空きを作ってください。ゴミ箱にファイルがたまってたりするので見てみましょう。

管理者権限については学校配布タブレットはないのであきらめてください。自分のpcの場合インストーラーを右クリックし管理者として実行を押します。

alt text

既にインストールされていないか確認してみてください。再インストールしたい場合一度アンインストールしてからインストーラーを実行してみてください。

ファイルが削除できない

そのファイルが何らかのプログラムが開いている場合ファイルの移動、削除、名前の変更ができません。一度そのファイルを開いているプログラムを閉じてから試してください。

USBデバイスが認識されない

USBポートまたはデバイス自体が故障してる場合があります。違うポートに刺してみてください。またデバイスマネージャーからそのUSBデバイスを確認してみてください。

作業系

入力していくとどんどん文字が消えていく

insertキーを押せば治ります。一体このキー何に使うんですかね…

保存してないのにパソコンが落ちてしまった

Officeなどの一部のアプリは設定していれば自動保存でデータが残っている場合があります。 back_up 下のほうの四角で囲ったところから確認できます。

動作が遅い

一度にたくさんのプログラムを開きすぎている可能性があります。ctrl+shift+escでタスクマネージャーを起動してメモリ順にして不要ならプログラムを終了しましょう。もしくはメモリを増設しちゃいましょう。

一部キーボードが反応しない

キーに何かが詰まってたり壊れると一部キーが反応しなくなることがあります。メカニカルキーボードでキーを交換できるなら交換すると治ることがあります。

コミットメッセージが空

日本語でもいいのでどこが変わっているのか書いておきましょう。空だとエラーが出ます。

古いバージョンをマージしてしまう

共同開発時に遅れているバージョンをマージしてしまうと変更が無になります。定期的にプルしておきましょう。

Unity関連

ファイル名などが日本語

エラーや文字化けの原因になります。絶対に日本語は使用しないでください。マジで後悔します。コメントアウトは大丈夫です。

オブジェクトが紫色

アセットの名前変更、削除、移動をすると紐づけていたマテリアルなどが解除されて紫色になることがあります。元に戻してあげましょう。

急に真っ暗

初期から設置されているDirectionalLightを削除すると光源がなくなるので真っ暗になります。

光源があるのにオブジェクトが真っ黒

オブジェクトのTransformのスケール(大きさ)の一部が0や-になっていると真っ黒になります。そりゃ体積が0や-の物体っておかしいよね

物体をすり抜けてしまう。

衝突させるにはまず両方にコリジョンが必要です。リジットボディーは片方のみでも大丈夫です。

プログラムを書いたのに全く動かない

書いたプログラムはきちんと正しいオブジェクトにアタッチしてありますか?アタッチしていないと何も起こりませんよ?

あるあるエラー

;がついていない

C言語ではコードの最後に;(セミコロン)を付ける必要があります。これのおかげで無理やりコードを一行に書いたりできます。

大文字小文字のミス

大文字と小文字の区別があります。よく見ましょう。

{}の数が合っていない

{}はどこからどこまでがその処理なのかを示します。多すぎたり足りていないとエラーが出ます。Visual Studio君はかっこを選択するとその対応したかっこを教えてくれるので確認してみてください。

スペースが全角になっている

プログラムは全角だと動きません。これはスペースに限らうず記号も同じです。

変数が宣言されていない

i = 10 + 5;

とか急にやられたらiはどこから来たの?ってエラーが出ます。

int i;
float a;

上のように最初に変数を宣言してから使いましょう。

intなのに小数を使おうとしている

int型というのは整数のみを格納できます。なので1.5のような変数を入れてしまうとエラーが出ます。floatを使うかUnityのC#である場合次の記述をすることで少数を扱うことができます。

int i = 1.5f;

文字コードってなんなんだ

· 約6分
ootomonaiso
8期生,部長,業務用ITソフトウェア・ソリューションズ班班長

こんにちは大友内装(粒)です。 今日は文字コードについて語っていきたいと思います。

文字コードってそもそもなんだ

文字コードは簡単に言えば数字を文字に直せる暗号表 皆さんご存じの通りコンピュータは0と1という限られた数字しか扱うことができません。 計算などであれば2進数を使って計算できます。しかしながら0と1だけでは文字はおろかポケベルのような数字を使った語呂合わせすら満足に行うことができません。

おおよその文字コードのしくみ

縦軸と横軸に数字を割り当てて、縦4ビット横4ビットの計8ビット(=1バイト)で文字を示す対応表がよくある文字コードです。1バイト文字コードと2バイト文字コードがあります。全角文字の存在のせいです。また、2バイトでも物足りない人のために文字符号を使った大規模な文字コードもあります。

文字化けするのは文字コードのせい?

文字コードは数字の組み合わせで対応する文字を作っています。文字コードは元々アメリカなどの英語を用いる文化圏でできたものです。そのため、英語や数字、キーボードにあるような\=などの記号は大抵文字化けしないで素直な子でいてくれます。

しかしながら、日本語は世界的に見ればマイナー言語です。そんな日本語を文字コードとして搭載する場合、文字コードの種類によって文字コードに搭載されている順番が異なります。そのため盛大に文字化けするというわけです。

試しのこのUTF-8で書いたテキストを変換してみましょう

愛知総合工科のみなさんこんにちは

Shift-JISではこのようになります

諢帷衍邱丞粋蟾・遘代�ョ縺ソ縺ェ縺輔s縺薙s縺ォ縺。縺ッ

なんということをしてくれたのでしょう 原型すらないではありませんか

これはUTF-8とShift-JISでは互換がないということを示しています。解読する暗号表が違うから暗号を解読できないってことです。

これによって引き起こされるSTEM部員にとっては致命的な問題は ログを出力してもことごとく文字化けして何が起きているかわからないことや、正常な動作をしてくれない事があげられます。

単純にテキストファイルだった場合は特に問題はないのです。文字コードのエンコード方式を変えればそのうち答えにたどり着きます。

しかし問題はソフトウェアで利用するとき。 そう例えばファイルパスに日本語が含まれたとき。 例えば変数や関数名に日本語を入れてしまったとき。

ソフトウェアくんは「ファイルパスで調べたけどファイルないよ?」とエラーを吐きます。「その関数は使えませんよ?あっエラーログ出しましたよ」とドヤ顔で文字化けしたログを出してくれます。わぁありがたいね…

このような理由から、プログラム内にコメント文以外で日本語を使うと悲しい悲劇が待っています。少なくとも、私はIDEのコマンドライン出力で何度も心をバキバキにされました。どうすればいいんだろうね…もう何もわからない…あのターミナルの文字コードを設定してる場所分からないからどうにもできないよ…

おわりに

我々がコンピュータ上で文字を読むことができるのは文字コードのおかげです。UTF-8くん使ってるはずなのに日本語出てこないのは中々にテロ。

みなさんも文字コードと仲良くなって、文字化けに対して怒らないでください。それはエンコード方式を正しく選ばなかったせいです。 良きコーディングライフを!