CNAMEについて
はじめに
Cnameについての概念と理解を深めるためのアウトプットをする
意味
CNAMEレコードは正規ホスト名に対する別名を定義するレコードです。
特定のホスト名を別のドメイン名に転送する時などに利用します。
別名は「エイリアス」(alias)と呼ばれる。
- 正規ホスト名はAレコードが登録されている必要があります。
- 特定のファイルやサブディレクトリを指定する事はできません。
- ホスト名なしのCNAMEレコードは登録することができません。
CNAMENを使うと変更の手間が省ける
IPアドレスが変更になるとき、CNAMEを使っていると手間を軽減させることができます。
少しわかりにくいので例をあげて説明します。次の5つのレコードを登録したい時を考えてみます。
www1.server-99.com A 192.168.10.102
www2.server-99.com A 192.168.10.102
www3.server-99.com A 192.168.10.102
www4.server-99.com A 192.168.10.102
www5.server-99.com A 192.168.10.102
その場合、www1~www5まで5つのレコードを登録する必要があります。5つ全てをAレコードで登録する場合どうでしょう?5つのサブドメインに同じIPアドレスを登録していきます。もし、IPアドレスが変更になった場合、5つのレコード全てを変更して上げる必要があります。とても面倒ですね。
CNAMEを使うと変更するレコードを1つにすることができます。
www1.server-99.com A 192.168.10.102
www2.server-99.com CNAME www1.server-99.com
www3.server-99.com CNAME www1.server-99.com
www4.server-99.com CNAME www1.server-99.com
www5.server-99.com CNAME www1.server-99.com
GitHubDeskTop コンフリクト時の処理
はじめに
このようなブランチ構成である。
devlopブランチではhtmlファイルが以下の状態である
<h1>Tomさん</h1> <p>こんにちは</p>
開発ブランチ_1にて以下のような編集を行う
<h1>Tomさん</h1> <p>おはようございます</p>
開発ブランチ_2にて以下のような編集を行う
<h1>Tomさん</h1> <p>こんばんわ</p>
devlopにマージする順番は開発ブランチ_1が最初である。
手順1
ブランチの切り方
マスターからブランチを切っているのでなく、devlopブランチから開発ブランチ_1及開発ブランチ_2を作成する。
写真の通りに作成する。
手順2
開発ブランチ_1で内容を変更し、コミットしプッシュする。
リモートリポジトリでマージする。
マージ先はmasterでなくてdevlopである。
手順3
devlopブランチに切り替えをする。
リモートのdevlopの環境とローカルの環境を同期するためにプルを行う
手順4
開発ブランチ_2にてファイルを編集する。
コミットし、マージする。
すると、コンフリクトが発生する。
githubdesktopに戻り、以下の画面をクリックする
devlopを選択するとコンフリクトが発生との画面になる。
エディタを覗くと写真の画面になっている。
あとはどのように編集するかを決める。
編集終わりコンフリクトが解消となれば、図のようになる
Salesforce ant インストールから使い方まで
- はじめに
- 手順1(antのインストール)
- 手順2(antのインストール)
- 手順3(antのインストール)
- 手順4(antインストール後の設定)
- 手順5(リトリーブの方法)
- 手順6(リトリーブの方法)
- 手順7(デプロイ の方法)
- 参考文献
はじめに
javaをインストールできている。私の環境ではこのようなバージョンのjavaが入っている
openjdk version "13.0.1" 2019-10-15 OpenJDK Runtime Environment Zulu13.28+11-CA (build 13.0.1+10-MTS) OpenJDK 64-Bit Server VM Zulu13.28+11-CA (build 13.0.1+10-MTS, mixed mode, sharing)
手順1(antのインストール)
developer.salesforce.com
上記サイトを基に説明していく。まずantをインストールする。
Apache Ant - Binary Distributions
手順2(antのインストール)
ダウンロードしたZIPファイルを解凍する。デスクトップに置いていても良いが、/usr/local/binに移動させるのが一般的。図ではfinderのGUIを用いてファイルを移動させた。CUIで移動できるならそっちの方が早い。
手順3(antのインストール)
次に保存したフォルダにパスを通す必要がある。環境変数にパスを記載して通す。.bash_profileファイルを作成する必要があります。
.bash_profileファイルはホームディレクトリに存在。
|--home
隠しファイルが見えない状態になっている場合は以下のサイトから表示させるようにコマンドを入力しておく。【Mac】隠しファイル・隠しフォルダを表示する方法 - Qiita
.bash.profileファイルに以下を記載する
ANT_HOME=/usr/local/bin/apache-ant-1.9.14 ←※保存しているversionによって記載は異なる export PATH=$ANT_HOME/bin:$PATH
さらに、このコマンド
source ~/.bash_profile
上記コマンドで読み込みをしてくれる。
antツールが正しく読み込まれているかを確認するために、以下コマンドを入力。
ant -version
インストールできていればバージョンが表示。
Apache Ant(TM) version 1.9.14 compiled on March 12 2019
手順4(antインストール後の設定)
Ant移行ツールをダウンロードする。
Salesforce Developers
ZIPファイルを解凍すると図のようなファイルが入っている。
このうちsampleは資源を環境からデプロイまたは、ダウンロードする際に使用するために、デスクトップにおいておく。
ant-salesforce.jarは保存するディレクトリを変更しないといけない。
ここに保存
|--usr |--local |--bin |--apache-ant-1.9.14 |--lib |--ant-salesforce.jar ←ここに保存
写真でも見せておく。
apache-ant.1.9.14(ダウンロードするバージョンによってフォルダ名は異なる)以下のlibフォルダ
これで準備は完了である。
手順5(リトリーブの方法)
sampleフォルダを使用してsalesforceの環境からデータを引っ張っていく。
図を参考にしてbilud.propertiesの記述を変更する。どの組織に繋ぐのかを記載。ログインURLに注意。サンドボックスならtestとなる。
手順6(リトリーブの方法)
環境から資源をダウンロードするのはフォルダはretrieveUnpackagedがデフォルトでなっている。
手順はコード化されておりSAMPLEフォルダ直下にあるbuild.xmlに記載がある。
下記コードはSFDC環境から資源をダウンロードするretrieveUnpackagedの記述。詳しく見てみる
<target name="retrieveUnpackaged"> <mkdir dir="retrieveUnpackaged"/> <!-- Retrieve the contents into another directory --> <sf:retrieve username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}" serverurl="${sf.serverurl}" maxPoll="${sf.maxPoll}" retrieveTarget="retrieveUnpackaged" unpackaged="unpackaged/package.xml"/> </target>
unpackaged="unpackaged/package.xml"と記載ある。
記載の通りunpackagedフォルダのpackage.xmlを覗いてみる。
<?xml version="1.0" encoding="UTF-8"?> <Package xmlns="http://soap.sforce.com/2006/04/metadata"> <types> <members>*</members> <name>ApexClass</name> </types> <types> <members>*</members> <name>ApexTrigger</name> </types> <version>47.0</version> </Package>
ここで記述されているのは2点。ApexClassとApexTriggerの全てを対象とする
何の資源をダウンロードしたいのかを明確にするのはこの場所である。
例えばライトニングコンポーメントの資源を全てダウンロードしたいとなれば以下の記述になる。
<?xml version="1.0" encoding="UTF-8"?> <Package xmlns="http://soap.sforce.com/2006/04/metadata"> <types> <members>*</members> <name>ApexClass</name> </types> <types> <members>*</members> <name>ApexTrigger</name> </types> <types> <members>*</members> <name>AuraDefinitionBundle</name> </types> <version>47.0</version> </Package>
少し話は戻り、build.xmlをもう一度見てみる。
retrieveTarget="retrieveUnpackaged"
と記載がある。ここにデータを吐き出すよって意味の記載。追加したライトニングコンポーメントはこのディレクトリ以下に溜まっていく。
実際に実行してみる。ターミナルからディレクトリをSAMPLEフォルダまで移動
cd desktop cd sample
コマンドを以下入力
ant retrieveUnpackaged
これでretrieveUnpackagedフォルダに指定した資源をダウンロードできるようになる。
手順7(デプロイ の方法)
資源をデプロイする方法について記述してみる。
build.xmlファイルをみる。
デプロイにかかる記述はdeployCodeに記載がある。
そのコードを詳しく見てみる。
<target name="deployCode"> <!-- Upload the contents of the "codepkg" directory, running the tests for just 1 class --> <sf:deploy username="${sf.username}" password="${sf.password}" sessionId="${sf.sessionId}" serverurl="${sf.serverurl}" maxPoll="${sf.maxPoll}" deployRoot="codepkg" testLevel="RunSpecifiedTests" rollbackOnError="true"> <runTest>SampleDeployClass</runTest> </sf:deploy> </target>
記載が長いので以下に大事な部分を抜粋。
<runTest>SampleDeployClass</runTest> は実行するテスト(資源)を指定している
本番環境ではテスト実行は必須だが、開発環境をまたぐ時にわざわざ実行するのも面倒なので
<target name="deployCode"> testLevel="NotestRun" > </target>
に設定すればテストクラスをデプロイ する必要はない。
deployRoot="codepkg" となっているため、codepkgフォルダを覗きにいく
こんなディレクトリ構造になっている。
|--codepkg |--classes |--triggers |--package.xml
先ほどの資源ダウンロード同じように、上記ディレクトリにデプロイしたい資源を入れて送る。
送る内容はpackage.xmlにて記載する。
<?xml version="1.0" encoding="UTF-8"?> <Package xmlns="http://soap.sforce.com/2006/04/metadata"> <types> <members>SampleDeployClass</members> <members>SampleFailingTestClass</members> <name>ApexClass</name> </types> <types> <members>SampleAccountTrigger</members> <name>ApexTrigger</name> </types> <version>47.0</version> </Package>
ここからライトニングコンポーネントを送るように指定するにはこのような書き方になる。
<?xml version="1.0" encoding="UTF-8"?> <Package xmlns="http://soap.sforce.com/2006/04/metadata"> <types> <members>test_kawa</members> <name>AuraDefinitionBundle</name> </types> <version>47.0</version> </Package>
test_kawaというコンポーネントを追加した。
この場合はコンポーネント単位(フォルダ)
コンポーネントの中身のjsファイル、cssファイルのみなども遅れるとおもうがまだ調べられていない。
|--codepkg |--aura |--classes |--triggers |--package.xml
auraに送りたい資源をいれる。
送りたい資源のみをフォルダにいれる。今回はclasses,tirggersは送らないので空にする。
あとは、コマンドを実行する。
ant deployCode
1年間プログラミングを勉強して振り返り
- はじめに
- 簡単に自己紹介
- なんでプログラミング始めたのか?
- 基幹システムを構築する会社→WEB系企業を目指す
- プログラミングの勉強ついて
- 就職までの道のり
- 金銭的な準備
- プログラミングの勉強を始めてからの心境の変化
- これから勉強を始める人へ
- 最後に
はじめに
ツイッターで学習報告を初めて1年経ちましたので、現状の振り返ります。これからプログラミング学習を始める人の参考に少しでもなればと思い記事を書いています。
今日から、毎日投稿していきます。
— yujiro (@yuuuujiro0320) 2019年1月6日
【現状】
プロゲイトHTML &CSS終了間近
【勉強順番】
java Script→git→Ruby
→Ruby on rails
→Rubyチュートリアル
Rubyに重点置いて、ポテパン申込む前にチュートリアルまで終わらしたい。
とりあえず進めるのが目標。理解は繰り返して覚える。
簡単に自己紹介
今何しているのってツッコミが入りそうなので簡単に自己紹介をします。
僕は無事エンジニアとして就職する事が出来ました。
Salesforceプラットフォームをベースにクラウドシステムの開発を受託開発企業で働いています。
いわゆる受託開発のエンジニアをしています。
Salesforceって知らない人も多いと思いますが、Heroku( クラウド・アプリケーション・プラットフォーム)を買収した会社です。(でかい会社なのよ)
受託開発以外にも自社製品も持っていてサブスクサービスを提供していたりとエンジニアとしては良い環境の会社に潜り込めたと感じています。
そんな僕ですがこのまま業務経験を積んでエンジニアとして生きていくキャリアを描いてるのでなく最終的にはBA(ビジネスアナリスト)/PMとしてキャリアを歩みたいと思っております。
なんでプログラミング始めたのか?
プログラミングを始めたきっかけは、前職のシステムがポンコツであったのがきっかけでした。
500名ほどの企業で営業職として働いていました。
基幹システムは全て自社で構築していました。変化の激しいIT業界の流れについていけずゴリゴリレガシーな基幹システムを使って商談管理や進捗管理などをしておりました。
アプリケーション間のデータリレーションがうまくとれず、現場のセールスとしては見たいデータが見れない&取れない状態でしたので、データExcelに出力し自身で加工しなればならず。本来注力すべき営業活動以外にかなり工数を取られていました。おかげで、Excelはある程度できるレベルになったのですが(笑)当時感じていた事は、とにかく無駄が多い。システムを変えるだけでかなり効率を上げることができるとの思いでした。
その頃から根本的にシステムを改善できるスキルを身に付けたいと思いプログラミングに興味を持ちました。
基幹システムを構築する会社→WEB系企業を目指す
基幹システムの開発あたりでググると、SES会社の募集は腐るほどありました。ただ、せっかく新たなチャレンジをする時にモダンないけてる会社で働きたいって思いがかなり強かったです。
ざっくりこんな会社では働きたくなかったです。
(1) | スーツ着て出社 |
(2) | フレックス導入してない |
(3) | リモートワーク不可 |
(4) | 朝礼とか掃除当番がある |
SESの会社で上記を満たす企業は僕の観測範囲ではありませんでした。
なので、基幹システムの構築をしている会社から、業務フローを簡素化できるシステム(saas)を提供している会社に軸を変更しました。
プログラミングの勉強ついて
駆け出しエンジニアの鉄板であるprogateから勉強を始めました。
そのあとの流れは以下の通りです。
progate→個人販売のプログラミング教材→プログラミングスクール
スクールに通っていた期間が一番伸びました。
理由は単純に、学習にコミットしていたからです。
ただスクールに関しては個人で学習管理できる人は本当に行く必要はないと思います。
教材が他と差別化できているかというとそうでもありませんでした。ただ、自身で勉強するだけだと共同開発の経験が出来ません。gitでバージョン管理とか経験しないと理解進まないし、gitに草はやす意味も分かりません。スクール以外で共同開発を経験するには以下サイトなんかで探したりすれば良いと思います。
menta.work
共同開発は、とにかくコミュニティを見つけてそこに飛び込めばいくらでも体験する機会はあると思います。共同開発を経験するためにわざわざスクールに行く必要はないと思います。
もちろん金銭的に余裕があればスクールでも良いと思います。自分で動かなくてもパッケージで準備してくれているので楽です。
スクールは高額支払う分どうしても期待値上がりますが、上げすぎると満足感は得られないと思います。(あくまで個人の感想です)
就職までの道のり
プログラミングを始めてから、就職までの工程は以下の通りです。
日付 | 行動 | 備考 |
---|---|---|
2018-6 | MACBOOKPRO15インチを買う | エンジニアの転職を意識した瞬間 |
2018-7 | progateに登録 | この頃に登録したけど結局ほとんどせず。4ヶ月かけてhtmlコースを学習する笑 |
2019-1 | 本格的に学習の開始 | Twitter配信開始 |
2019-2 | 会社に退職願を提出 | 受理後退職届提出 |
2019-2 | 個人販売のプログラミング学習教材を購入 | 教材見れる&質問できる&転職完了まで資料が使える。最高!と思い購入しました。6万払いましたがクソすぎた笑 |
2019-3 | 3月末最終出社 | その後有給消化 |
2019-4 | プログラミングスクール | 4月末~7月上旬まで |
2019-7 | スクール卒業 | なんだかんだ600時間は学習した |
2019-7 | 1社内定 | スクールからの紹介企業に内定。あまりにもすぐ決まりすぎて驚く。ただ第一志望の会社があったため内定辞退。 |
2019-8 | ポートフォリオ作成 | 100時間かけて個人で作成 |
2019-9 | 転職活動 | 1ヶ月で15社程度応募した |
2019-10 | 内定 | 10月上旬に内定。結果2社内定だった |
新卒の時は面接緊張しましたが、7年そこそこ頑張って営業していたのもあり、面接は思ったほど苦労しませんでした。
今はエンジニアとして働いているので断言できますが、エンジニアはコミュ障が多いです。笑(営業職とくらべ)
その傾向もあってか、エンジニア志望で的確に志望理由や将来のキャリアについて話すと印象が良いイメージでした。
金銭的な準備
就職までの道のりとは他に参考になればと思い記載しておきます。
というのもチャレンジするのは大切ですが、お金もある程度あった方が精神的に余裕が保てるからです。
事前に僕は100万は生活費に充てるお金としてストックしていました。
日付 | 収支について | 備考 |
---|---|---|
2019-5 | 会社の給与支払い最終月 | 有給消化で5月まで在籍 |
2019-6 | 退職金 | 退職金支給 |
2019-6 | 失業申請 | 申請して3ヶ月の猶予期間ある |
2019-6 | 妻の扶養家族になる | 結婚している特権。毎月かかる税金が免除 |
2019-7 | 夏のボーナス支給 | 退職日後が支給日なのに振り込みがあった。最高 |
2019-8 | 無収入 | |
2019-9 | 無収入 | |
2019-10 | 失業保険 | 14日分だったかな |
2019-11 | 再就職先会社から給与 | 再就職手当申請 |
2019-12 | 給与&再就職手当 | 申請から振込まで1ヶ月 |
無収入でも半年は暮らせる程度もお金があれば十分だと思います。精神的に楽でした。
プログラミングの勉強を始めてからの心境の変化
元々エンジニアとしての専門性を高めたキャリアを想像していましたが、ハイスペックエンジニアのレベルの高さに圧倒されたのと,20代後半からそのフィールドでチャレンジするのはリスクが高いなと思い始めました。
また面接を通じて多くの企業から提案されたのが、将来的にPM/BIとしてのキャリアが良いのではとの事でした。
僕の今までのキャリアを活かしながらIT業界で生き残って行くには最前だと自分でも思うようになり目指すキャリアをチェンジする事にしました。
正直、上流のコンサル(課題の抽出ー要件定義など)ができる人材の方が給与が良いです。
そんなお金の要素もありパタンと思考を切り替えました笑
これから勉強を始める人へ
コミュニケーションに自身がある人又は能力が高い人
プログラマーよりITコンサルや、PMを目指す道をオススメします。特に営業職経験者はこの道を進むのがベターと思います。プログラミングのスキルはあって越した事はないしなんだかんだ求められるので勉強は必要です。
コミュニケーションに自身ない
言い方悪いですがコミュ障でもお金を稼ぐ事のできる仕事だと思います(他の職種と比較し)。実際社内でもくそ絡みづらいけどかなり稼いでいるエンジニアは何人もいます。
ただ、学習習慣は必須ですし、勉強を続ける事ができる人でないと実現できないと感じます。
フリーランスエンジニアを目指している人
とにかく最速でなるのであれば、モダンな技術があーだこーだでなく、フロントのコーディングができ、ワードプレスいじれるかだと思います。
よく個人で教材販売している人の内容見れば、半年でフリーランス的なやつは、最終GOALはワードプレス案件の獲得な気がします。エンジニア的にはダサい仕事でそんな稼げないって言われてる。
地に足固めて技術を身につけていく覚悟がある方はかなりいばら道になると意識して下さい。
未経験者が20代後半からチンタラやって慣れる世界ではないと思います。あと、賢いやつは賢いです。頭の回転が速い。偏差値50以下(国語、英語、数学)の人は相当ハンデキャップあると考えて下さい。学歴不要=馬鹿でもできるわけではありません。
最後に
プログラマーなりフリーランスで稼ぐキャリアも素敵です。個人の時代と言われているからこそ意識してしまうと思います。ただなにをするにも自分がどうありたいのかを明確にイメージする事は大切です。
僕はキャリアを軌道修正できたのでモチベーション高く仕事に取り組めています。
他の方の参考になればと思います。