<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>プログラミング &#8211; フリーランスさばいばる</title>
	<atom:link href="https://dev-memo.net/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>https://dev-memo.net</link>
	<description>生涯フリーランスで生き延びるためのブログ</description>
	<lastBuildDate>Sat, 22 Oct 2022 09:50:23 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.2</generator>

<image>
	<url>https://dev-memo.net/wp-content/uploads/2022/06/cropped-favicon-32x32.png</url>
	<title>プログラミング &#8211; フリーランスさばいばる</title>
	<link>https://dev-memo.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ネーミングツールで快適プログラミング。エンジニア必携のcodic</title>
		<link>https://dev-memo.net/codic/</link>
					<comments>https://dev-memo.net/codic/#respond</comments>
		
		<dc:creator><![CDATA[キミヒラ]]></dc:creator>
		<pubDate>Thu, 12 Sep 2019 11:12:17 +0000</pubDate>
				<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://dev-memo.net/?p=1935</guid>

					<description><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2017/10/YAMA_DSC2546_TP_V-1024x681.jpg" class="webfeedsFeaturedVisual" /></p>関数名や変数名のネーミングに意外と時間がかかっていたりしませんか？ Google翻訳使ったりしても、しっくりくる英単語が見つからなかったりします。本来の開発に集中したいので、こんなことに時間を無駄にしたくないですよね。  [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2017/10/YAMA_DSC2546_TP_V-1024x681.jpg" class="webfeedsFeaturedVisual" /></p>
<p>関数名や変数名のネーミングに意外と時間がかかっていたりしませんか？</p>



<p>Google翻訳使ったりしても、しっくりくる英単語が見つからなかったりします。<br>本来の開発に集中したいので、こんなことに時間を無駄にしたくないですよね。</p>



<p>その無駄を解消してくれるツールが、<strong>「codic」</strong>。</p>



<p><span class="ymarker"><span class="swl-marker mark_yellow">一発で変数名や関数名を自動生成してくれますし、プラグインとしてIDEに組み込めば、ブラウザを開く必要すらありません。</span></span></p>



<p>非常にオススメなツールなので詳しく解説していきます。</p>



<h2 class="wp-block-heading">変数名・関数名を日本語から自動生成</h2>



<p><span class="ymarker"><strong>codic</strong>は変数名を日本語で打ち込むと、自動で英語の変数名を生成してくれます。</span></p>



<figure class="wp-block-image is-style-shadow"><img decoding="async" width="1024" height="215" src="https://dev-memo.net/wp-content/uploads/2019/09/ネーミング___codic-1024x215.png" alt="" class="wp-image-1936" srcset="https://dev-memo.net/wp-content/uploads/2019/09/ネーミング___codic-1024x215.png 1024w, https://dev-memo.net/wp-content/uploads/2019/09/ネーミング___codic-300x63.png 300w, https://dev-memo.net/wp-content/uploads/2019/09/ネーミング___codic-768x161.png 768w, https://dev-memo.net/wp-content/uploads/2019/09/ネーミング___codic.png 1359w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><span class="photoline"></span></p>



<p><strong>「表示フラグ」</strong>と打ったら、<strong>「display_flag」</strong>と自動で生成してくれます。<br>そのまま変数名として使える形式です。</p>



<p>もちろん関数名も生成できます。</p>



<figure class="wp-block-image is-style-shadow"><img decoding="async" width="1024" height="220" src="https://dev-memo.net/wp-content/uploads/2019/09/ネーミング___codic-1-1024x220.png" alt="" class="wp-image-1937" srcset="https://dev-memo.net/wp-content/uploads/2019/09/ネーミング___codic-1-1024x220.png 1024w, https://dev-memo.net/wp-content/uploads/2019/09/ネーミング___codic-1-300x64.png 300w, https://dev-memo.net/wp-content/uploads/2019/09/ネーミング___codic-1-768x165.png 768w, https://dev-memo.net/wp-content/uploads/2019/09/ネーミング___codic-1.png 1356w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><span class="photoline"></span></p>



<p><span class="ymarker">関数名を生成する時は、<strong>動詞</strong>と<strong>目的語</strong>を日本語で打ち込むといい感じの関数名が生成されます。</span></p>



<p>今回のケースは、<strong>「ユーザーを（目的語）」＋「登録する（動詞）」</strong>で構成して、<strong>「register_user」</strong>という関数名が生成されました。</p>



<p>この関数名もそのまま使えます。</p>



<h2 class="wp-block-heading">スネークケースやキャメルケースなど命名規則に沿った変数名に変換できる</h2>



<p>変数名や関数名の命名規則はプロジェクトによって異なります。</p>



<p>キャメルケースだったりスネークケースだったり。</p>



<p class="is-style-big_icon_point">キャメルケース：単語の区切りを詰めて、単語の先頭を大文字にする。（例：registerUser）<br>スネークケース：単語の区切りをアンダースコアでつなぐ。（例：register_user）</p>



<p><span class="ymarker">codicはこれらの複数の命名規則に対応しています。</span></p>



<figure class="wp-block-image is-style-shadow"><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2019/09/%E3%83%8D%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%AF%E3%82%99___codic-2-1024x312.png" alt="" class="wp-image-1939"/></figure>



<p><br>画面の左上のボタンをクリックすると、命名規則を選べます。</p>



<p>選べるタイプはこちら。</p>



<div class="wp-block-group has-border -border04 has-swl-pale-02-background-color has-background"><div class="wp-block-group__inner-container">
<ul class="is-style-check_list"><li>パスカルケース</li><li>キャメルケース</li><li>スネークケース（小文字）</li><li>スネークケース（大文字）</li><li>ハイフネーショ</li><li>変換なし</li></ul>
</div></div>



<p>これだけ網羅されていれば、どんなプロジェクトでも対応できそうです。</p>



<h2 class="wp-block-heading">カスタマイズして省略形やプロジェクト固有の単語も登録できる</h2>



<p><span class="swl-marker mark_yellow">さらに、アカウント登録するとオリジナルのカスタマイズが可能になります。</span></p>



<p>例えば、codicで<strong>「削除フラグ」</strong>を変換すると「<strong>deletion_flag」</strong>となります。</p>



<figure class="wp-block-image is-style-shadow"><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2019/09/%E3%83%8D%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%AF%E3%82%99___codic-3-1024x226.png" alt="" class="wp-image-1940"/></figure>



<p><br>もちろんこれでも良いのですが、<strong>「del_flg」</strong>とするプロジェクトも多いですよね。</p>



<p>プログラミングでよく使われる省略形です。</p>



<p class="is-style-big_icon_memo">deletion　→　del<br>flag　→　flg</p>



<p><span class="ymarker">こういった省略形もログインして辞書をカスタマイズすれば自動で変換してくれます。</span></p>



<figure class="wp-block-image is-style-shadow"><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2019/09/%E3%83%8D%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%AF%E3%82%99___codic-4-1024x257.png" alt="" class="wp-image-1941"/></figure>



<p><br><span class="ymarker"><span class="swl-marker mark_yellow">しかも、カスタマイズした内容は開発メンバーに共有することも可能です。</span></span></p>



<p>codicをプロジェクトに導入すれば命名規則を簡単に共有できるんです。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="yellow"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://dev-memo.net/wp-content/uploads/2022/08/icon_cut-2-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2022/08/icon_cut-2-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">キミヒラ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>ツールで命名規則を共有できるのはかなり便利ですね！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h2 class="wp-block-heading">IDEにプラグインをインストールすれば直接変換できる</h2>



<p><span class="ymarker">さらにIDEのプラグインをインストールする事で、<span class="swl-marker mark_yellow">codicを開く事無くエディター内で変換できるようになります。</span></span></p>



<p>僕はPhpStormにcodicのプラグインをインストールしました。</p>



<p><span class="swl-bg-color has-swl-gray-background-color"><kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>D</kbd> </span>で開くポップアップに日本語を入力すると英語に変換された候補が表示されます。</p>



<figure class="wp-block-image is-style-shadow"><img decoding="async" width="702" height="208" src="https://dev-memo.net/wp-content/uploads/2019/09/SC_Product_php_-_test-enskyshop-com_-____work_git_test-enskyshop-com_.png" alt="" class="wp-image-1942" srcset="https://dev-memo.net/wp-content/uploads/2019/09/SC_Product_php_-_test-enskyshop-com_-____work_git_test-enskyshop-com_.png 702w, https://dev-memo.net/wp-content/uploads/2019/09/SC_Product_php_-_test-enskyshop-com_-____work_git_test-enskyshop-com_-300x89.png 300w" sizes="(max-width: 702px) 100vw, 702px" /></figure>



<p>もうネーミング作業に時間を取られることはありません。</p>



<p>多くのIDEをカバーしているのも嬉しいですね。</p>



<figure class="wp-block-image is-style-shadow"><img decoding="async" width="1024" height="744" src="https://dev-memo.net/wp-content/uploads/2019/09/プラグイン___codic-1024x744.png" alt="" class="wp-image-1943" srcset="https://dev-memo.net/wp-content/uploads/2019/09/プラグイン___codic-1024x744.png 1024w, https://dev-memo.net/wp-content/uploads/2019/09/プラグイン___codic-300x218.png 300w, https://dev-memo.net/wp-content/uploads/2019/09/プラグイン___codic-768x558.png 768w, https://dev-memo.net/wp-content/uploads/2019/09/プラグイン___codic.png 1275w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>（公式：<a href="https://codic.jp/plugins">codic|プラグインと拡張</a>）</figcaption></figure>



<h2 class="wp-block-heading">まとめ：ネーミングに時間をかけずに爆速プログラミング</h2>



<p>codicは、ネーミングに時間を短縮したい全てのプログラマーにおすすめできるツールです。</p>



<p>英語が苦手でも、codicを使えば一瞬で変数名や関数名を生成できます。</p>



<p>ネーミングにかけていた時間を短縮して、本来のシステム開発作業に集中しましょう。</p>



<p>最後までお読み頂きありがとうございました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dev-memo.net/codic/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【現役エンジニアがオススメ】『いきなりはじめるPHP』はプログラミング入門に最適</title>
		<link>https://dev-memo.net/ikinarihajimeruphp/</link>
					<comments>https://dev-memo.net/ikinarihajimeruphp/#respond</comments>
		
		<dc:creator><![CDATA[キミヒラ]]></dc:creator>
		<pubDate>Wed, 13 Mar 2019 09:16:13 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[エンジニア]]></category>
		<category><![CDATA[書評]]></category>
		<guid isPermaLink="false">https://dev-memo.net/?p=1440</guid>

					<description><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2019/03/hedgehogIMGL8737_TP_V-1024x682.jpg" class="webfeedsFeaturedVisual" /></p>PHPの入門書『いきなりはじめるPHP』が、なかなか良い本だったのでご紹介します。 嫁さんにPHPを教える為に最初の１冊に選んだ本がこの『いきなりはじめるPHP』です。１度はプログラミングの勉強を断念した嫁さんでも、この [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2019/03/hedgehogIMGL8737_TP_V-1024x682.jpg" class="webfeedsFeaturedVisual" /></p>
<p>PHPの入門書<strong>『いきなりはじめるPHP』</strong>が、なかなか良い本だったのでご紹介します。</p>


		<div class="pochipp-box"
			data-id="0"
			data-img="l"
			data-lyt-pc="dflt"
			data-lyt-mb="vrtcl"
			data-btn-style="dflt"
			data-btn-radius="off"
			data-sale-effect="flash"
			 data-cvkey="babd9ab5"		>
							<div class="pochipp-box__image">
					<a href="https://www.amazon.co.jp/dp/4897978858?tag=devmemo-22&#038;linkCode=osi&#038;th=1&#038;psc=1" rel="nofollow">
						<img decoding="async" src="https://m.media-amazon.com/images/I/518ff0D-ASL._SL500_.jpg" alt="" width="120" height="120" />					</a>
				</div>
						<div class="pochipp-box__body">
				<div class="pochipp-box__title">
					<a href="https://www.amazon.co.jp/dp/4897978858?tag=devmemo-22&#038;linkCode=osi&#038;th=1&#038;psc=1" rel="nofollow">
						いきなりはじめるPHP~ワクワク・ドキドキの入門教室					</a>
				</div>

									<div class="pochipp-box__info">著:谷藤 賢一, イラスト:河原 健人</div>
				
									<div class="pochipp-box__price">
						¥1,980						<span>（2022/10/19 15:37時点 | Amazon調べ）</span>
					</div>
				
							</div>
				<div class="pochipp-box__btns"
		data-maxclmn-pc="fit"
		data-maxclmn-mb="1"
	>
					<div class="pochipp-box__btnwrap -amazon">
								<a href="https://www.amazon.co.jp/dp/4897978858?tag=devmemo-22&#038;linkCode=osi&#038;th=1&#038;psc=1" class="pochipp-box__btn" rel="nofollow">
					<span>
						Amazon					</span>
									</a>
			</div>
							<div class="pochipp-box__btnwrap -rakuten">
								<a href="https://hb.afl.rakuten.co.jp/hgc/16f2ddaa.27b811ea.16f2ddab.17b6c0ea/?pc=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2581%2584%25E3%2581%258D%25E3%2581%25AA%25E3%2582%258A%25E3%2581%25AF%25E3%2581%2598%25E3%2582%2581%25E3%2582%258BPHP&#038;m=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2581%2584%25E3%2581%258D%25E3%2581%25AA%25E3%2582%258A%25E3%2581%25AF%25E3%2581%2598%25E3%2582%2581%25E3%2582%258BPHP" class="pochipp-box__btn" rel="nofollow">
					<span>
						楽天市場					</span>
									</a>
			</div>
										<div class="pochipp-box__btnwrap -yahoo -long-text">
								<a href="https://shopping.yahoo.co.jp/search?p=%E3%81%84%E3%81%8D%E3%81%AA%E3%82%8A%E3%81%AF%E3%81%98%E3%82%81%E3%82%8BPHP" class="pochipp-box__btn" rel="nofollow">
					<span>
						Yahooショッピング					</span>
									</a>
			</div>
							</div>
								<div class="pochipp-box__logo">
					<img decoding="async" src="https://dev-memo.net/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png" alt="" width="32" height="32">
					<span>ポチップ</span>
				</div>
					</div>
	


<p>嫁さんにPHPを教える為に最初の１冊に選んだ本がこの『<strong>いきなりはじめるPHP』</strong>です。<br><span class="swl-marker mark_yellow">１度はプログラミングの勉強を断念した嫁さんでも、この本は完了する事が出来ました。</span></p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2017/07/school-1782427_1280-300x198.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://dev-memo.net/yome_programming/">フリーランスが嫁にプログラミングを教えてみた失敗談</a>
						<span class="p-blogCard__excerpt">ある日突然、嫁が「プログラミング勉強しようかな〜」なんて言い出しました。 おお！それは良い！ プログラミング覚えてくれれば、僕は一人では受けれないような大きな&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p>とてもわかりやすい構成になっているので、最初の一歩を踏み出すには最適な本です。<br><span class="ymarker">今までプログラミングの勉強に挫折してきた人にこそオススメします。</span></p>



<p>現役PHPエンジニアが<strong>『いきなりはじめるPHP』</strong>の良いところと、おすすめの勉強法を解説します。</p>



<h2 class="wp-block-heading">『いきなりはじめるPHP』は超優しい入門書</h2>



<figure class="wp-block-image"><img decoding="async" width="1600" height="901" src="https://dev-memo.net/wp-content/uploads/2022/10/GREEN20160902534715_TP_V-edited.jpg" alt="" class="wp-image-4542" srcset="https://dev-memo.net/wp-content/uploads/2022/10/GREEN20160902534715_TP_V-edited.jpg 1600w, https://dev-memo.net/wp-content/uploads/2022/10/GREEN20160902534715_TP_V-edited-300x169.jpg 300w, https://dev-memo.net/wp-content/uploads/2022/10/GREEN20160902534715_TP_V-edited-1024x577.jpg 1024w, https://dev-memo.net/wp-content/uploads/2022/10/GREEN20160902534715_TP_V-edited-768x432.jpg 768w, https://dev-memo.net/wp-content/uploads/2022/10/GREEN20160902534715_TP_V-edited-1536x865.jpg 1536w" sizes="(max-width: 1600px) 100vw, 1600px" /></figure>



<p><strong>『いきなりはじめるPHP』</strong>の良い点は、とにかく優しいという事！</p>



<p>初心者がプログラミングの勉強をしようとすると、わからないことだらけで躓いてしまうことも多いです。</p>



<p>Web開発で扱うキーワードをざっとあげようとすると、<br>サーバー、HTML、PHP、MYSQL、ブラウザ、レスポンス、リクエスト、Apache、Linux、Javascript…<br>まだまだありますね。</p>



<p>初心者がこれらを一気に理解するのは難しいですよね。<br>「何が解らないかも解らない」ような状況になってしまうかもしれません。</p>



<p><span class="ymarker"><strong>『いきなりはじめるPHP』</strong>はまさに、このような初心者に向けた本です。</span></p>



<p>難しいことは一旦おいておいて、とにかくプログラミングの世界を体験することができます。</p>



<p><span class="swl-marker mark_yellow">プログラミング入門する前の入門書といえる本で、最初の第一歩に最適なんです。</span></p>



<h2 class="wp-block-heading">現役PHPエンジニアがオススメする勉強法</h2>



<figure class="wp-block-image"><img decoding="async" width="1280" height="720" src="https://dev-memo.net/wp-content/uploads/2022/10/school-1782427_1280-edited.jpg" alt="" class="wp-image-4543" srcset="https://dev-memo.net/wp-content/uploads/2022/10/school-1782427_1280-edited.jpg 1280w, https://dev-memo.net/wp-content/uploads/2022/10/school-1782427_1280-edited-300x169.jpg 300w, https://dev-memo.net/wp-content/uploads/2022/10/school-1782427_1280-edited-1024x576.jpg 1024w, https://dev-memo.net/wp-content/uploads/2022/10/school-1782427_1280-edited-768x432.jpg 768w" sizes="(max-width: 1280px) 100vw, 1280px" /></figure>



<p>実際に嫁さんに<strong>『いきなりはじめるPHP』</strong>で勉強してもらう際に、僕が提案した勉強方法をご紹介します。</p>



<h3 class="wp-block-heading">HTMLとCSSを先に学んでおく</h3>



<p>超優しい入門書なのですが、それでも事前に知っておいた方が良い知識があります。</p>



<p>それが、<strong>HTML</strong>と<strong>CSS</strong>です。</p>



<p>これはPHPに限らず、Webアプリケーションを開発する際には、ほぼ使用することになる技術です。<br>なので、PHPの学習するうえでも<strong>HTML</strong>と<strong>CSS</strong>は避けては通れません。</p>



<p><span class="rmarker"><strong>PHP</strong>と<strong>HTML</strong>と<strong>CSS</strong>の３つを一度に学ぼうとすると</span>混乱してしまうので、まずはHTMLとCSSについて簡単に学んでおくことでPHPの学習をスムーズに進めることができます。</p>



<p class="is-style-icon_announce">HTMLとCSSは基礎のみ簡単に学んだら、PHPの学習へ進みましょう。<br>HTMLとCSSも完璧を目指したらきりがありません。</p>



<p>ドットインストールに良い教材があるので紹介しておきます。</p>



<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
https://dotinstall.com/lessons/basic_html_tags_v3
</div></figure>



<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
https://dotinstall.com/lessons/basic_css_styles_v3
</div></figure>



<h3 class="wp-block-heading">エラーの理由のほとんどが入力ミス</h3>



<p>プログラミングの学習にはエラーがつきものです。</p>



<p>そのほとんどの原因が入力ミスだと思います。<br>これは仕方ないことで、プログラミングを手打ちしていたら現役プログラマーでも入力ミスをします。</p>



<p>このエラーの原因を探す作業に時間をかけてしまう人も少なくありません。<br>サンプルコードと自分のコードを目視で見比べて間違いを探そうとしたら、大変な作業です。</p>



<p><span class="swl-marker mark_yellow">このようなミスを減らすのに便利なのが、プログラミング用のエディターです。</span><br>エディターが入力ミスを検知してくれます。</p>



<p><strong>『Visual Studio Code』</strong>が無料で高性能なのでオススメです。</p>



<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
https://azure.microsoft.com/ja-jp/products/visual-studio-code/
</div></figure>



<h3 class="wp-block-heading">学んだことをアウトプットする</h3>



<p>この本はサクサク進むように作られています。<br>理解していなくても、書かれている通りに入力していけば先に進んでしまいます。</p>



<p><span class="ymarker">「読み終わったけど何も理解できなかった…」なんてことにならないように、学んだことを応用して自作の簡単なWebアプリを作ってみましょう。</span><br>これをやるのとやらないのでは格段に理解度が違います。</p>



<p>ちなみに嫁さんには僕から課題を出して、簡単なWebアプリを作ってもらいました。</p>



<h2 class="wp-block-heading">『いきなりはじめるPHP』を読了した嫁さんにインタビュー</h2>



<figure class="wp-block-image"><img decoding="async" width="1600" height="901" src="https://dev-memo.net/wp-content/uploads/2022/10/YUKA0I9A7452_TP_V-edited.jpg" alt="" class="wp-image-4544" srcset="https://dev-memo.net/wp-content/uploads/2022/10/YUKA0I9A7452_TP_V-edited.jpg 1600w, https://dev-memo.net/wp-content/uploads/2022/10/YUKA0I9A7452_TP_V-edited-300x169.jpg 300w, https://dev-memo.net/wp-content/uploads/2022/10/YUKA0I9A7452_TP_V-edited-1024x577.jpg 1024w, https://dev-memo.net/wp-content/uploads/2022/10/YUKA0I9A7452_TP_V-edited-768x432.jpg 768w, https://dev-memo.net/wp-content/uploads/2022/10/YUKA0I9A7452_TP_V-edited-1536x865.jpg 1536w" sizes="(max-width: 1600px) 100vw, 1600px" /></figure>



<p>実際に『<strong>いきなりはじめるPHP』</strong>で勉強をした嫁さんにインタビューしてみました。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="yellow"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://dev-memo.net/wp-content/uploads/2022/08/icon_cut-2-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2022/08/icon_cut-2-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">キミヒラ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>『いきなりはじめるPHP』の読了おめでとう！<br>初めてのPHPはどうだった？</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="red"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://dev-memo.net/wp-content/uploads/2022/10/youngwoman_40-150x150.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2022/10/youngwoman_40-150x150.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">嫁さん</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>絶対に出来ないと思っていたけど、思っていたよりは簡単にできたから自信に繋がったよ！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p><span class="swl-marker mark_yellow">プログラミングの書籍を１つ終わらせた事で自身に繋がったようです。</span><br>成功体験を積めたのは大きな成果です。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="yellow"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://dev-memo.net/wp-content/uploads/2022/08/icon_cut-2-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2022/08/icon_cut-2-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">キミヒラ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>それは良かった！難しかったところはあった？</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="red"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://dev-memo.net/wp-content/uploads/2022/10/youngwoman_40-150x150.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2022/10/youngwoman_40-150x150.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">嫁さん</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>本を読み終わったあとの課題で、頭に入っていないところが沢山あって、何度も読み返す必要があったことかな。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>僕が作成した課題を真剣に取り組んでくれたみたいです。<br>やはり本をサクサク進めるだけでは身にならないので、アウトプットは大切ですね。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="red"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://dev-memo.net/wp-content/uploads/2022/10/youngwoman_40-150x150.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2022/10/youngwoman_40-150x150.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">嫁さん</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>あとは本の内容でちょっと古い部分があって、本の通りにやっても動かなくて躓いたな。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>この本の初版は2011年です。<br><span class="swl-marker mark_orange">８年間も売れ続けているとても優れている本なのでが、内容が古くなっている部分もあります。</span></p>



<p>ちなみに本の内容が古くて動かなかったのは、XAMPPでした。</p>



<p class="is-style-icon_book">XAMPPとは、Webアプリケーションの実行環境です。<br>『<strong>いきなりはじめるPHP』</strong>の学習で使用します。</p>



<p>本では当時のオススメのバージョンが指定されていますが、当時の2011年だとWindows 7が主流で、今はWindows 10が主流です。<br>OSが世代交代するほど時間が立っているわけですから、XAMPPも最新を使うのが無難でしょう。</p>



<p>嫁さんは古いXAMPPでは動きませんでしたが、最新のXAMPPで試すと問題なく動作しました。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="yellow"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://dev-memo.net/wp-content/uploads/2022/08/icon_cut-2-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2022/08/icon_cut-2-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">キミヒラ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>この本の良かったことろは？</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="red"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://dev-memo.net/wp-content/uploads/2022/10/youngwoman_40-150x150.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2022/10/youngwoman_40-150x150.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">嫁さん</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>エラーが出た時にの対処方法まで丁寧に説明されているのがとても助かった！老人向けの本かなってくらいに優しい！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>初心者向けに丁寧に解説されている事がとても良かったみたいですね。</p>



<p>エラーが出た時の解決能力はプログラマーにとってとても重要です。<br>そこまで考慮されているは素晴らしいです。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="yellow"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://dev-memo.net/wp-content/uploads/2022/08/icon_cut-2-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2022/08/icon_cut-2-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">キミヒラ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>勉強していて楽しかった事は？</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="red"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://dev-memo.net/wp-content/uploads/2022/10/youngwoman_40-150x150.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2022/10/youngwoman_40-150x150.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">嫁さん</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>この１冊で動きのあるWebサイトが作れた事が面白かった！<br>難しくない内容だったのに、最後までやり遂げて出来上がったものを見た時にびっくりしたな！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>やっぱり、初めて動くものをプログラミングした時って嬉しいですよね。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="yellow"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://dev-memo.net/wp-content/uploads/2022/08/icon_cut-2-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2022/08/icon_cut-2-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">キミヒラ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>これから本格的な勉強が始まるけど頑張れそう？</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

<div class="swell-block-balloon"><div class="c-balloon -bln-right" data-col="red"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://dev-memo.net/wp-content/uploads/2022/10/youngwoman_40-150x150.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2022/10/youngwoman_40-150x150.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">嫁さん</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>これから難しくなってくるのかと思うと不安はあるな。<br>まあでもコツコツ頑張るよ！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>ここまでは簡単だったけどこの先は不安みたいですね。</p>



<p><span class="swl-marker mark_yellow">でも『<strong>いきなりはじめるPHP』</strong>はわかりやすく、スムーズに学習を進められたようです。</span></p>



<h2 class="wp-block-heading">まとめ：『いきなりはじめるPHP』ではじめの一歩を踏み出そう</h2>



<p><span class="ymarker"><strong>『いきなりはじめるPHP』</strong>は、<strong>”入門書を読む前の入門書”</strong>としてオススメです！</span></p>



<p><span class="swl-marker mark_yellow">最初から難しい事をやろうとして挫折しない為にも、まずはこの本ではじめの一歩を踏み出してはいかがでしょうか？</span></p>


		<div class="pochipp-box"
			data-id="0"
			data-img="l"
			data-lyt-pc="dflt"
			data-lyt-mb="vrtcl"
			data-btn-style="dflt"
			data-btn-radius="off"
			data-sale-effect="flash"
			 data-cvkey="c7ad89a9"		>
							<div class="pochipp-box__image">
					<a href="https://www.amazon.co.jp/dp/4897978858?tag=devmemo-22&#038;linkCode=osi&#038;th=1&#038;psc=1" rel="nofollow">
						<img decoding="async" src="https://m.media-amazon.com/images/I/518ff0D-ASL._SL500_.jpg" alt="" width="120" height="120" />					</a>
				</div>
						<div class="pochipp-box__body">
				<div class="pochipp-box__title">
					<a href="https://www.amazon.co.jp/dp/4897978858?tag=devmemo-22&#038;linkCode=osi&#038;th=1&#038;psc=1" rel="nofollow">
						いきなりはじめるPHP~ワクワク・ドキドキの入門教室					</a>
				</div>

									<div class="pochipp-box__info">著:谷藤 賢一, イラスト:河原 健人</div>
				
									<div class="pochipp-box__price">
						¥1,980						<span>（2022/10/19 15:37時点 | Amazon調べ）</span>
					</div>
				
							</div>
				<div class="pochipp-box__btns"
		data-maxclmn-pc="fit"
		data-maxclmn-mb="1"
	>
					<div class="pochipp-box__btnwrap -amazon">
								<a href="https://www.amazon.co.jp/dp/4897978858?tag=devmemo-22&#038;linkCode=osi&#038;th=1&#038;psc=1" class="pochipp-box__btn" rel="nofollow">
					<span>
						Amazon					</span>
									</a>
			</div>
							<div class="pochipp-box__btnwrap -rakuten">
								<a href="https://hb.afl.rakuten.co.jp/hgc/16f2ddaa.27b811ea.16f2ddab.17b6c0ea/?pc=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2581%2584%25E3%2581%258D%25E3%2581%25AA%25E3%2582%258A%25E3%2581%25AF%25E3%2581%2598%25E3%2582%2581%25E3%2582%258BPHP&#038;m=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2F%25E3%2581%2584%25E3%2581%258D%25E3%2581%25AA%25E3%2582%258A%25E3%2581%25AF%25E3%2581%2598%25E3%2582%2581%25E3%2582%258BPHP" class="pochipp-box__btn" rel="nofollow">
					<span>
						楽天市場					</span>
									</a>
			</div>
										<div class="pochipp-box__btnwrap -yahoo -long-text">
								<a href="https://shopping.yahoo.co.jp/search?p=%E3%81%84%E3%81%8D%E3%81%AA%E3%82%8A%E3%81%AF%E3%81%98%E3%82%81%E3%82%8BPHP" class="pochipp-box__btn" rel="nofollow">
					<span>
						Yahooショッピング					</span>
									</a>
			</div>
							</div>
								<div class="pochipp-box__logo">
					<img decoding="async" src="https://dev-memo.net/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png" alt="" width="32" height="32">
					<span>ポチップ</span>
				</div>
					</div>
	


<p><span class="ymarker">最後に僕からのアドバイスは<strong>”完璧を目指さない事”</strong>です。</span></p>



<p>この本は、「入門の入門」であってあえて難しいことは省いています。<br>難しいことは次のステップで学びましょう。<br>はじめの一歩を踏み出すことが大切です。</p>



<p>難しく考えずにサクサク進めて、PHPの世界を体験できればOKくらいの気持ちが良いと思います。</p>



<p>最後までお読み頂きありがとうございました。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2019/10/inexperienced_engineer-300x158.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://dev-memo.net/inexperienced_engineer/">未経験からエンジニアに就職する最短ルート【フリーランスが解説】</a>
						<span class="p-blogCard__excerpt">未経験からエンジニアにを目指すとき、何から始めれば良いのでしょうか？ 選択肢はたくさんあります。 すぐに就職活動？ まずはプログラミングスクール？ 書籍やWebの講&#8230;</span>					</div>
				</div>
			</div>
		</div>]]></content:encoded>
					
					<wfw:commentRss>https://dev-memo.net/ikinarihajimeruphp/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【PhpStorm/MAMP】デバッグ中にphpMyAdminで中断してしまう場合の対処方法</title>
		<link>https://dev-memo.net/phpstorm-phpmyadmin-debug/</link>
					<comments>https://dev-memo.net/phpstorm-phpmyadmin-debug/#respond</comments>
		
		<dc:creator><![CDATA[キミヒラ]]></dc:creator>
		<pubDate>Sat, 08 Dec 2018 09:09:56 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PhpStorm]]></category>
		<guid isPermaLink="false">https://dev-memo.net/?p=1216</guid>

					<description><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2018/01/code-1839406_1280-1024x683.jpg" class="webfeedsFeaturedVisual" /></p>PhpStormでデバッグしていると、なぜかphpMyAdminで一時停止してしまう問題。開発環境は、ローカルのMAMPです。 phpMyAdminを使う時は毎回デバッグをOFFにしていたのですが、地味にストレスなんです [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2018/01/code-1839406_1280-1024x683.jpg" class="webfeedsFeaturedVisual" /></p>
<p>PhpStormでデバッグしていると、なぜかphpMyAdminで一時停止してしまう問題。<br>開発環境は、ローカルのMAMPです。</p>



<p>phpMyAdminを使う時は毎回デバッグをOFFにしていたのですが、地味にストレスなんですよね。</p>



<p>PhpStormの設定でphpMyAdminをデバックの対象外とする事で解決できました。</p>



<p><span class="ymarker"><span class="swl-marker mark_yellow">この記事の手順で設定すれば５分ほどで解決できます。</span></span></p>



<p>PhpStromのMAMP環境でのデバックの設定方法は下記の記事で解説しています。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2018/01/code-1839406_1280-300x200.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://dev-memo.net/phpstorm_debug/">PhpStorm&#038;MAMP環境のデバッグ（Xdebug）の設定方法</a>
						<span class="p-blogCard__excerpt">Phpstorm＆MAMPP環境でデバッガー（Xdebug）を使えるようにする手順の説明です。 デバッガーを設定すると開発がめちゃくちゃ捗ります。デバッグ用にダンプ出力したりし&#8230;</span>					</div>
				</div>
			</div>
		</div>


<h2 class="wp-block-heading">PhpStormでphpMyAdminのデバッグを無効にする手順</h2>



<p>では早速手順の解説です。</p>



<p>PhpStormの設定でphpMyAdminをデバッグの対象外とします。</p>



<p>PhpStormの環境設定を開いて下記の項目を選択します。</p>



<p class="is-style-icon_pen"><span class="ymarker">Languages &amp; Frameworks > PHP > Debug > Skipped Paths</span></p>



<figure class="wp-block-image is-style-shadow"><img decoding="async" width="1022" height="676" src="https://dev-memo.net/wp-content/uploads/2018/12/Preferences-1.png" alt="" class="wp-image-1220" srcset="https://dev-memo.net/wp-content/uploads/2018/12/Preferences-1.png 1022w, https://dev-memo.net/wp-content/uploads/2018/12/Preferences-1-300x198.png 300w, https://dev-memo.net/wp-content/uploads/2018/12/Preferences-1-768x508.png 768w" sizes="(max-width: 1022px) 100vw, 1022px" /></figure>



<p>Skipped Pathsを開いたら、右下の＋ボタンをクリックしてphpMyAdminのパスを設定しましょう。<br>MAMP環境だと、MAMP/bin/phpMyAdminになります。</p>



<p><span class="ymarker">わからなければ、PhpStromのデバッグで止まっているphpMyAdminのソースコードを選択すればパスを確認</span>することができます。</p>



<figure class="wp-block-image is-style-shadow"><img decoding="async" width="458" height="336" src="https://dev-memo.net/wp-content/uploads/2018/12/sql_php_-_smashbros_-____work_git_smashbros_.png" alt="" class="wp-image-1221" srcset="https://dev-memo.net/wp-content/uploads/2018/12/sql_php_-_smashbros_-____work_git_smashbros_.png 458w, https://dev-memo.net/wp-content/uploads/2018/12/sql_php_-_smashbros_-____work_git_smashbros_-300x220.png 300w" sizes="(max-width: 458px) 100vw, 458px" /></figure>



<p>パスを入力したら、ApplyとOKを押して完了です。<br>これでデバッグ時のストレスがなくなりました。</p>



<p>参考になれば幸いです。</p>



<p>最後までお読みいただきありがとうございました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dev-memo.net/phpstorm-phpmyadmin-debug/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【JavaScript】Select2ライブラリの検索方式を前方一致に変更する方法【コピペで対応】</title>
		<link>https://dev-memo.net/select2_much_start/</link>
					<comments>https://dev-memo.net/select2_much_start/#respond</comments>
		
		<dc:creator><![CDATA[キミヒラ]]></dc:creator>
		<pubDate>Tue, 20 Nov 2018 10:54:25 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<guid isPermaLink="false">https://dev-memo.net/?p=1165</guid>

					<description><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2018/11/woman-1076254_1280-1024x508.jpg" class="webfeedsFeaturedVisual" /></p>JavaScriptのライブラリの「Select」で前方一致検索させる方法についての説明です。 Select2はデフォルトでは部分一致検索されるのですが、それを前方一致に変更する方法になります。 コピペで簡単に対応出来る [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2018/11/woman-1076254_1280-1024x508.jpg" class="webfeedsFeaturedVisual" /></p>
<p><span class="ymarker"><strong>JavaScript</strong>のライブラリの<strong>「Select」</strong>で<strong>前方一致検索</strong>させる方法についての説明です。</span></p>



<p><span class="swl-marker mark_yellow"><strong>Select2</strong>はデフォルトでは<strong>部分一致検索</strong>されるのですが、それを前方一致に変更する方法になります。</span></p>



<p><span class="ymarker">コピペで簡単に対応出来るようにしましたので、ご参考にどうぞ！</span></p>



<h2 class="wp-block-heading">Select2はプルダウンを拡張するJavaScriptライブラリ</h2>



<p>簡単に<strong>Select2</strong>の説明をしておきます。<br>説明不要の方は次の見出しまで読み飛ばしてください。</p>



<p>Select2は、プルダウンを拡張するJavaScriptライブラリです。<br>このライブラリを入れると、プルダウンの項目に対して検索かけれるようになります。</p>



<p>導入方法は下記の記事がわかりやすいです。</p>



<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
https://qiita.com/mtanabe/items/c324a2d4a8de8d1595e4
</div></figure>



<p>ちなみに同じようなライブラリに<a rel="noopener noreferrer" href="https://harvesthq.github.io/chosen/" target="_blank">Chosen</a>というライブラリもあります。</p>



<h2 class="wp-block-heading">Select2の検索方式を前方一致に変更する方法</h2>



<p>本題のSelect2の検索方式を前方一致にする方法の説明です。</p>



<h3 class="wp-block-heading">サンプルソース（コピペ利用可能）</h3>



<p>まずソースコードを。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-html" data-lang="HTML"><code>&lt;script&gt;
    $(function() {

        $(&quot;.select2&quot;).select2({
            matcher: function(params, data) {
                return matchStart(params, data);
            },
        });
    })

    function matchStart(params, data) {
        params.term = params.term || &#39;&#39;;
        if (data.text.toUpperCase().indexOf(params.term.toUpperCase()) == 0) {
            return data;
        }
        return false;
    }


&lt;/script&gt;

&lt;select class=&quot;select2&quot;&gt;
    &lt;option value=&quot;&quot;&gt;&lt;/option&gt;
    &lt;option value=&quot;スズキ&quot;&gt;スズキ&lt;/option&gt;
    &lt;option value=&quot;ヒラスズキ&quot;&gt;ヒラスズキ&lt;/option&gt;
    &lt;option value=&quot;タイリクスズキ&quot;&gt;タイリクスズキ&lt;/option&gt;
&lt;/select&gt;</code></pre></div>



<p>このソースコードをコピペして、optionを書き換えれば利用できます。</p>



<h3 class="wp-block-heading">サンプルソースの説明</h3>



<p>サンプルソースの説明です。</p>



<p><strong>Select2</strong>を指定したタグに適応するファンクションの<em><strong>select2()</strong></em>には、いろいろなオプションを指定できます。<br>その<span class="ymarker"><span class="swl-marker mark_yellow">オプションの中にmatcherがあり、matcherに自作のファンクションを指定するとマッチング処理をカスタマイズ出来ます。</span></span></p>



<p>今回は前方一致させたいので、<em><strong>matchStart</strong></em>という自作のファンクションに前方一致検索処理を実装して指定しています。</p>



<p>matcherのカスタマイズ方法は、本家でも説明されています。</p>



<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
https://select2.org/searching#customizing-how-results-are-matched
</div></figure>



<h2 class="wp-block-heading">まとめ：select2は自由にmatcherをカスタマイズ出来る</h2>



<p>この方法でSelect2のマッチング処理を自由にカスマイズできます。</p>



<p>この記事が参考なれば幸いです。</p>



<p>最後までお読み頂きありがとうございました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dev-memo.net/select2_much_start/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【PHP】大きいリモートファイルをfreadすると途中で切れる【理由と解決法】</title>
		<link>https://dev-memo.net/php_remote_fread/</link>
					<comments>https://dev-memo.net/php_remote_fread/#respond</comments>
		
		<dc:creator><![CDATA[キミヒラ]]></dc:creator>
		<pubDate>Thu, 15 Nov 2018 11:26:49 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://dev-memo.net/?p=1152</guid>

					<description><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2018/01/code-1839406_1280-1024x683.jpg" class="webfeedsFeaturedVisual" /></p>PHPでリモートファイル（httpやsshで読み込むファイル）をfreadする際、容量の大きいファイルを読み込むと、読み込みが途中で切れる事があります。 読み込みファイルの途中で途切れるだけで、エラーなどが発生しないのが [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2018/01/code-1839406_1280-1024x683.jpg" class="webfeedsFeaturedVisual" /></p>
<p><span class="rmarker">PHPでリモートファイル（httpやsshで読み込むファイル）を<strong>fread</strong>する際、容量の大きいファイルを読み込むと、読み込みが途中で切れる事があります。</span></p>



<p><span class="swl-marker mark_orange">読み込みファイルの途中で途切れるだけで、エラーなどが発生しないのがやっかいなところ。</span></p>



<p>これは<strong>fread</strong>の仕様でして、リモートファイルを読み込む場合は別の方法をで実装した方が良いです。</p>



<p>読み込みが切れる理由と、正しい実装方法をご紹介します。</p>



<h2 class="wp-block-heading">【理由】リモートファイルをfreadすると途中でファイル読み込みが切れる</h2>



<p>リモートファイルを<strong>fread</strong>すると、途中でファイル読み込みが切れる事があります。</p>



<p><span class="rmarker"><span class="swl-marker mark_orange">恐ろしいのは、そこそこのファイルサイズじゃないと切れないので大きいサイズのファイルでテストしていないと気づかないんですよね。</span></span><br>テストをスルーして本番で不具合発覚なんてケースになりえるので要注意です。</p>



<p>なぜファイルの読み込みが途中で切れるかは、PHPリファレンスに記載がありました。</p>



<blockquote class="wp-block-quote"><p>警告</p><p>通常のローカルファイル以外のもの、例えば リモートファイル や popen()、fsockopen() が返す ストリームを読み込んでいる場合には、 パケットが有効になった後に読み込みはストップします。 つまり以下の例のように分割されたデータを結合すべきであるということです。</p><cite><a href="http://php.net/manual/ja/function.fread.php">PHPリファレンス</a></cite></blockquote>



<p>リモートファイルをfreadする場合は、パケットの単位で読み込みが途切れてしまうのです。</p>



<p>ちなみに、リファレンスでは<strong>http</strong>でファイルを開いたケースが紹介されいますが、僕は<strong>ssh2</strong>で読み込んだファイルで発生しました。</p>



<p><span class="rmarker">リモートファイルの読み込み全般で発生すると思われます。</span></p>



<h2 class="wp-block-heading">【対策】freadではなくstream_get_contentsを使おう</h2>



<p>正しい実装方法もリファレンスに書いてあります。</p>



<p>解決方法を<a rel="noreferrer noopener" href="http://php.net/manual/ja/function.fread.php" target="_blank">PHPリファレンス</a>から引用します。</p>



<h3 class="wp-block-heading">PHP５以降</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>&lt;?php
// PHP 5 以降での例
$handle = fopen(&quot;http://www.example.com/&quot;, &quot;rb&quot;);
$contents = stream_get_contents($handle);
fclose($handle);
?&gt;</code></pre></div>



<h3 class="wp-block-heading">PHP５未満</h3>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>&lt;?php
$handle = fopen(&quot;http://www.example.com/&quot;, &quot;rb&quot;);
if (FALSE === $handle) {
    exit(&quot;Failed to open stream to URL&quot;);
}

$contents = &#39;&#39;;

while (!feof($handle)) {
    $contents .= fread($handle, 8192);
}
fclose($handle);
?&gt;</code></pre></div>



<p><span class="ymarker">PHP５以降であれば、<strong>fread</strong>を<strong>stream_get_contents</strong>に変えればOKです。</span></p>



<p>PHP5未満の場合は、読み込み完了をチェックしながらループで繰り返しfreadする必要があります。</p>



<h2 class="wp-block-heading">まとめ：リモートファイルの読み込みにfreadを使う場合は要注意</h2>



<p>こういう不具合はテストで見つけられなかったりするので、ちょっと怖いですよね。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="yellow"><div class="c-balloon__icon -square"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://dev-memo.net/wp-content/uploads/2022/08/icon_cut-2-150x150.jpg" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2022/08/icon_cut-2-150x150.jpg" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">キミヒラ</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>実際に僕はこれで不具合を出してしまいました。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>この記事が少しでも参考になれば幸いです。</p>



<p>最後までお読み頂きありがとうございました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dev-memo.net/php_remote_fread/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【EC-CUBE2】CSV項目の追加方法</title>
		<link>https://dev-memo.net/ecc_add_csv/</link>
					<comments>https://dev-memo.net/ecc_add_csv/#respond</comments>
		
		<dc:creator><![CDATA[キミヒラ]]></dc:creator>
		<pubDate>Tue, 03 Apr 2018 10:13:11 +0000</pubDate>
				<category><![CDATA[EC-CUBE]]></category>
		<guid isPermaLink="false">https://dev-memo.net/?p=747</guid>

					<description><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2017/02/shopping-cart-1269166_1920-1024x678.jpg" class="webfeedsFeaturedVisual" /></p>EC-CUBE2のCSVの項目を追加する方法の解説です。 プログラムの修正不要で対応できます。 手順１：csv_idを調べる まずは、登録したいcsv_idを調べます。 何も変更していなければ、csv_idは下記のように [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2017/02/shopping-cart-1269166_1920-1024x678.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong>EC-CUBE2</strong>のCSVの項目を追加する方法の解説です。</p>



<p><span class="swl-marker mark_yellow"><span class="ymarker">プログラムの修正不要で</span>対応できます。</span></p>



<h2 class="wp-block-heading">手順１：csv_idを調べる</h2>



<p>まずは、登録したい<strong>csv_id</strong>を調べます。</p>



<p>何も変更していなければ、<strong>csv_id</strong>は下記のようになります。</p>



<figure class="wp-block-table"><table><tbody><tr><th>機能名</th><th>csv_id</th></tr><tr><td>商品管理</td><td>1</td></tr><tr><td>会員管理</td><td>2</td></tr><tr><td>受注管理</td><td>3</td></tr><tr><td>レビュー</td><td>4</td></tr><tr><td>カテゴリ</td><td>5</td></tr></tbody></table></figure>



<p>もし変更していたら、ソースコードの<strong>SC_Helper_CSV.php</strong>の<strong>init()</strong>メソッドで確認することもできます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>/**
     * 項目情報を初期化する.
     *
     * @access private
     * @return void
     */
    public function init()
    {
        $this-&gt;arrSubnavi = array(
            1 =&gt; &#39;product&#39;,
            2 =&gt; &#39;customer&#39;,
            3 =&gt; &#39;order&#39;,
            4 =&gt; &#39;review&#39;,
            5 =&gt; &#39;category&#39;,
        );

        $this-&gt;arrSubnaviName = array(
            1 =&gt; &#39;商品管理&#39;,
            2 =&gt; &#39;会員管理&#39;,
            3 =&gt; &#39;受注管理&#39;,
            4 =&gt; &#39;レビュー&#39;,
            5 =&gt; &#39;カテゴリ&#39;,
        );
    }</code></pre></div>



<p>この配列の添字が<strong>csv_id</strong>になります。</p>



<h2 class="wp-block-heading">手順２：CSVテーブルへ項目を追加</h2>



<p><strong>csv_id</strong>がわかったら、テーブルへ項目を追加します。<br>CSVのテーブルは、<strong>dtb_csv</strong>です。</p>



<p>こちらにレコードを追加する事で、<strong>EC-CUBE</strong>の<strong>CSV</strong>の項目に追加されます。</p>



<p>レコードの追加は、<strong>phpMyAdmin</strong>から行います。</p>



<p class="is-style-big_icon_point">コピー機能で追加するのがオススメです。<br>似たような項目からコピーする事で、必要な箇所のみ変更するだけで済みます。</p>



<p>既存の項目のコピーで新しいカラムを追加します。</p>



<figure class="wp-block-image is-style-shadow"><img decoding="async" width="929" height="428" src="https://dev-memo.net/wp-content/uploads/2018/04/localhost___localhost___eccube_db___dtb_csv___phpMyAdmin_4_5_2.png" alt="" class="wp-image-764" srcset="https://dev-memo.net/wp-content/uploads/2018/04/localhost___localhost___eccube_db___dtb_csv___phpMyAdmin_4_5_2.png 929w, https://dev-memo.net/wp-content/uploads/2018/04/localhost___localhost___eccube_db___dtb_csv___phpMyAdmin_4_5_2-300x138.png 300w, https://dev-memo.net/wp-content/uploads/2018/04/localhost___localhost___eccube_db___dtb_csv___phpMyAdmin_4_5_2-768x354.png 768w" sizes="(max-width: 929px) 100vw, 929px" /></figure>



<p><span class="photoline"></span></p>



<p>各カラムの内容を下記のようになります。</p>



<figure class="wp-block-table"><table><tbody><tr><th>項目名</th><th>内容</th></tr><tr><td>no</td><td>dtb_csvのKEY。重複してはいけないので、dtb_csv全体の末尾の次の番号にする。</td></tr><tr><td>csv_id</td><td>前の手順で調べたcsv_id。</td></tr><tr><td>col</td><td>取得する項目のDBのカラム名。</td></tr><tr><td>disp_name</td><td>管理画面・CSV上の表示名。</td></tr><tr><td>rank</td><td>並び順。csv_idで抽出した中の末尾の次の番号にする。</td></tr><tr><td>rw_flg</td><td>読み書きフラグ。<br>1:読み書き可能　2:読み込みのみ可能　3:キー列</td></tr><tr><td>status</td><td>CSV出力する・しないの項目。管理画面のCSV出力設定で変更可能なので、とりあえず１か２を設定すれば良い。<br>１：出力する　2:出力しない</td></tr><tr><td>mb_convert_kana_option</td><td>変換オプション。</td></tr><tr><td>size_const_type</td><td>サイズ。</td></tr><tr><td>error_check_types</td><td>エラーチェックタイプ。</td></tr></tbody></table></figure>



<p><strong>mb_convert_kana_option、size_const_type、error_check_types</strong>については、下記のサイトに詳しく解説があります。</p>



<p>http://blog.livedoor.jp/kuworks/archives/50510206.html</p>



<p>これで完了です。</p>



<h2 class="wp-block-heading">実践編：商品管理CSVに項目を追加してみる</h2>



<p>では、試しに<strong>商品管理</strong>に<strong>creator_id</strong>を追加してみます。<br><strong>商品管理</strong>は、<strong>csv_id</strong>が<strong>１</strong>です。</p>



<p>下記のようにコピーで必要な項目を変更して登録しました。<br></p>



<figure class="wp-block-image is-style-shadow"><img decoding="async" width="784" height="870" src="https://dev-memo.net/wp-content/uploads/2018/04/localhost___localhost___eccube_db___dtb_csv___phpMyAdmin_4_5_2-1.png" alt="" class="wp-image-765" srcset="https://dev-memo.net/wp-content/uploads/2018/04/localhost___localhost___eccube_db___dtb_csv___phpMyAdmin_4_5_2-1.png 784w, https://dev-memo.net/wp-content/uploads/2018/04/localhost___localhost___eccube_db___dtb_csv___phpMyAdmin_4_5_2-1-270x300.png 270w, https://dev-memo.net/wp-content/uploads/2018/04/localhost___localhost___eccube_db___dtb_csv___phpMyAdmin_4_5_2-1-768x852.png 768w" sizes="(max-width: 784px) 100vw, 784px" /></figure>



<p><span class="photoline"></span></p>



<figure class="wp-block-image is-style-shadow"><img decoding="async" width="774" height="886" src="https://dev-memo.net/wp-content/uploads/2018/04/localhost___localhost___eccube_db___dtb_csv___phpMyAdmin_4_5_2-2.png" alt="" class="wp-image-766" srcset="https://dev-memo.net/wp-content/uploads/2018/04/localhost___localhost___eccube_db___dtb_csv___phpMyAdmin_4_5_2-2.png 774w, https://dev-memo.net/wp-content/uploads/2018/04/localhost___localhost___eccube_db___dtb_csv___phpMyAdmin_4_5_2-2-262x300.png 262w, https://dev-memo.net/wp-content/uploads/2018/04/localhost___localhost___eccube_db___dtb_csv___phpMyAdmin_4_5_2-2-768x879.png 768w" sizes="(max-width: 774px) 100vw, 774px" /></figure>



<p><span class="photoline"></span></p>



<p>登録したら、CSV出力設定で確認しましょう。<br>phpMyAdminで登録した項目が表示されています。</p>



<figure class="wp-block-image is-style-shadow"><img decoding="async" width="900" height="586" src="https://dev-memo.net/wp-content/uploads/2018/04/EC-CUBE_管理機能.png" alt="" class="wp-image-767" srcset="https://dev-memo.net/wp-content/uploads/2018/04/EC-CUBE_管理機能.png 900w, https://dev-memo.net/wp-content/uploads/2018/04/EC-CUBE_管理機能-300x195.png 300w, https://dev-memo.net/wp-content/uploads/2018/04/EC-CUBE_管理機能-768x500.png 768w" sizes="(max-width: 900px) 100vw, 900px" /></figure>



<p>実際にCSVを出力してみましょう。<br></p>



<figure class="wp-block-image is-style-shadow"><img decoding="async" width="555" height="108" src="https://dev-memo.net/wp-content/uploads/2018/04/product_180403_1834482.png" alt="" class="wp-image-768" srcset="https://dev-memo.net/wp-content/uploads/2018/04/product_180403_1834482.png 555w, https://dev-memo.net/wp-content/uploads/2018/04/product_180403_1834482-300x58.png 300w" sizes="(max-width: 555px) 100vw, 555px" /></figure>



<p>ちゃんと出力されていればOKです。</p>



<h2 class="wp-block-heading">まとめ：EC-CUBEのCSV項目の追加はプログラミング不要</h2>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="577" src="https://dev-memo.net/wp-content/uploads/2022/10/GREEN20160902534715_TP_V-edited-1024x577.jpg" alt="" class="wp-image-4542" srcset="https://dev-memo.net/wp-content/uploads/2022/10/GREEN20160902534715_TP_V-edited-1024x577.jpg 1024w, https://dev-memo.net/wp-content/uploads/2022/10/GREEN20160902534715_TP_V-edited-300x169.jpg 300w, https://dev-memo.net/wp-content/uploads/2022/10/GREEN20160902534715_TP_V-edited-768x432.jpg 768w, https://dev-memo.net/wp-content/uploads/2022/10/GREEN20160902534715_TP_V-edited-1536x865.jpg 1536w, https://dev-memo.net/wp-content/uploads/2022/10/GREEN20160902534715_TP_V-edited.jpg 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><span class="swl-marker mark_yellow"><span class="ymarker">EC-CUBEのCSVの項目追加は、元になっているテーブルにある項目であれば、プログラムの修正無しで追加でき</span>ます。</span></p>



<p>ただ、csv_idの確認やテーブルの各カラムの内容の確認が手間だったりするので、記事にまとめてみました。</p>



<p>この記事が少しでもお役に立てれば幸いです。</p>



<p>最後までお読み頂きありがとうございました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dev-memo.net/ecc_add_csv/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【GAE/GO】Echo V3はGAE未対応？V2なら動く！</title>
		<link>https://dev-memo.net/gae_go_echo_version/</link>
					<comments>https://dev-memo.net/gae_go_echo_version/#comments</comments>
		
		<dc:creator><![CDATA[キミヒラ]]></dc:creator>
		<pubDate>Tue, 20 Mar 2018 11:54:56 +0000</pubDate>
				<category><![CDATA[GO]]></category>
		<guid isPermaLink="false">https://dev-memo.net/?p=740</guid>

					<description><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2018/03/mac-459196_1280-1024x634.jpg" class="webfeedsFeaturedVisual" /></p>※2018/3/20時点で最新のEchoのバージョンV3で動かせなかった事象です。その後、V4がリリースされているので最新版のEchoでは本記事の問題は解決しているかもしれません。（未確認） GAE/GoにEchoを導入 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2018/03/mac-459196_1280-1024x634.jpg" class="webfeedsFeaturedVisual" /></p>
<p class="is-style-icon_info">※2018/3/20時点で最新のEchoのバージョンV3で動かせなかった事象です。<br>その後、V4がリリースされているので最新版のEchoでは本記事の問題は解決しているかもしれません。（未確認）</p>



<p><strong>GAE/Go</strong>に<span style="color: #000000;"><strong>Echo</strong>を導入しようとしてハマった件について</span>。</p>



<p>結局、最新バージョンのEchoV3（2018/3/20当時の最新）はGAE環境で動かせませんでした…</p>



<p>妥協して<span class="ymarker">V2では動かすことができた</span>ので、同じ様にハマっている方の参考になれば。</p>



<h2 class="wp-block-heading">EchoのバージョンV3だと動かない？</h2>



<p>最新の<strong>Echo</strong>の<strong>V3</strong>でセットアップを始めました。</p>



<p>公式のマニュアルを参考にセットアップを行いました。</p>



<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
https://echo.labstack.com/cookbook/google-app-engine/
</div></figure>



<p>ですが、下記のようなエラーが。</p>



<p class="is-style-dent_box">2018/03/16 18:56:06 go-app-builder: Failed parsing input: parser: bad import &#8220;unsafe&#8221; in github.com/json-iterator/go/adapter.go from GOPATH</p>



<p><span class="rmarker">GAEでは、<strong>unsafeパッケージをインポートしちゃダメ</strong>ってことのようですが、Echoが参照しているライブラリでインポートしているんですよね。</span></p>



<p>色々試してみましたが、解決せず。</p>



<p>諦めて、情報が豊富なV2で試してみることに。</p>



<h2 class="wp-block-heading">EchoのV２でセットアップ</h2>



<p><span class="ymarker">V2だと無事にセットアップ出来ました！</span></p>



<p>下記のQiitaの記事の通りに進めれば無事にセットアップ出来ます。</p>



<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
https://qiita.com/ytkhs/items/701279c43b33ce923613
</div></figure>



<p>補足するとしたら、Echoのバージョンの切替方法でしょうか。</p>



<p>バージョンの切り替えは、<strong>go get</strong>で<strong>Echo</strong>を取得していると<strong>Gitリポジトリ</strong>になっているので、<strong>Git</strong>の操作でバージョンを切り替える事ができます。</p>



<p><strong>Echo</strong>のディレクトリで、下記のコマンドで<strong>V2</strong>のブランチに切り替え。</p>



<p class="is-style-dent_box">git checkout V2</p>



<p>依存関係でエラーが出るので、下記のモジュールをクローンします。</p>



<p class="is-style-dent_box">https://github.com/rs/cors</p>



<p>これで無事に動きました。</p>



<h2 class="wp-block-heading">まとめ：本当はV3が使いたい</h2>



<p><span class="swl-marker mark_orange">一応動くようにはなりましたが、バージョンを下げて対応という結果でした。</span></p>



<p>これって、V３の開発が進めば解決するんですかね。</p>



<p>もしくは、単なる僕のミスでV３でもちゃんとセットアップできたりして…</p>



<p>GAE/Go/EchoV3でセットアップできた方がいれば教えていただきたいです。</p>



<h3 class="wp-block-heading">追記</h3>



<p>kashitakaさんよりコメントを頂きました、別のフレームワークのGinを使うという選択肢もありですね。</p>



<p><span class="ymarker">無理してEchoの古いバージョンを使うよりGinの最新版を使った方が良さそうです。</span></p>



<p>kashitakaさん、貴重な情報ありがとうございました。</p>



<p class="is-style-icon_info">※2018/3/20時点で最新のEchoのバージョンV3で動かせなかった事象です。<br>その後、V4がリリースされているので最新版のEchoでは本記事の問題は解決しているかもしれません。（未確認）</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dev-memo.net/gae_go_echo_version/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>【C++】浮動小数点数の誤差（double→floatで値が変わる）</title>
		<link>https://dev-memo.net/floating_point_number/</link>
					<comments>https://dev-memo.net/floating_point_number/#respond</comments>
		
		<dc:creator><![CDATA[キミヒラ]]></dc:creator>
		<pubDate>Wed, 14 Mar 2018 17:37:53 +0000</pubDate>
				<category><![CDATA[C++]]></category>
		<guid isPermaLink="false">https://dev-memo.net/?p=733</guid>

					<description><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2017/11/mistake-1966460_1920-1024x651.jpg" class="webfeedsFeaturedVisual" /></p>C++で下記の２つのメソッドに3.6fを引数に渡すと異なる結果になります。 test1は35を返し、test2は36を返します。3.6 / 0.1なので、36が欲しい結果なので35を返すtest1の実装だとNGなわけです [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2017/11/mistake-1966460_1920-1024x651.jpg" class="webfeedsFeaturedVisual" /></p>
<p><strong>C++</strong>で下記の２つのメソッドに<strong>3.6f</strong>を引数に渡すと異なる結果になります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>const float UNIT = 0.1f;
int test1(float num)
{
    return (int)  (num / UNIT);
}

int test2(float num)
{
    float result = num / UNIT;
    return (int) (result);
}</code></pre></div>



<p><strong>test1</strong>は<strong>35</strong>を返し、<strong>test2</strong>は<strong>36</strong>を返します。<br><span class="rmarker"><span class="swl-marker mark_orange"><em><strong>3.6 / 0.1</strong></em>なので、<strong>36</strong>が欲しい結果なので35を返すtest1の実装だとNGなわけです。</span></span></p>



<p>二つのメソッドの違いは、一度計算結果をfloatの変数に入れているかどうか。</p>



<p>なぜこのような計算結果の違いがおこるのか、自分だけでは理解できずに<strong>teratail</strong>で質問してみました。</p>



<figure class="wp-block-embed"><div class="wp-block-embed__wrapper">
https://teratail.com/questions/116812
</div></figure>



<p>質問してすぐに３人の方から回答頂き、理解することができました。</p>



<p><span class="ymarker"><span class="swl-marker mark_yellow">結論からお話すると、<strong>「浮動小数点数の誤差」</strong>と<strong>「キャスト時の丸め処理の違い」</strong>が原因でした。</span></span></p>



<p>では詳しく解説していきます。</p>



<p class="is-style-icon_announce">※浮動小数点の誤差は、開発環境（コンパイラやOSなど）によって異なります。<br>上記のサンプルの計算結果にならない環境の方が多いみたいです</p>



<h2 class="wp-block-heading">原因その１：浮動小数点数の誤差が発生していた</h2>



<p><span class="ymarker"><span class="swl-marker mark_yellow"><strong>浮動小数点数の誤差</strong>が発生している事がわかりました。</span></span></p>



<p>計算結果を<strong>double</strong>で受けてみると、下記の値になっていました。</p>



<p class="is-style-dent_box">35.99999849999995</p>



<p>計算に使っている少数が２進数だと表現できない<strong>循環小数</strong>だったのでこのような誤差が出ているんですね。</p>



<p>ただこれだけだと、test1とtest2の計算結果が異なる理由にはなりませんね。<br>test1とtest2で同じように<strong>浮動小数点数の誤差</strong>が発生しているわけですから。</p>



<h2 class="wp-block-heading">原因その２：floatに代入する事で四捨五入されていた</h2>



<p><strong>teratail</strong>ではこのように回答を頂きました。</p>



<blockquote class="wp-block-quote"><p>test1はdoubleを直接intへ変換してます。test2はdoubleを一旦floatへ変換後intへ変換してます。</p></blockquote>



<p>これは、実際にキャスト処理イメージしてみるとわかりやすいです。</p>



<h3 class="wp-block-heading">test1の場合</h3>



<p><strong>double</strong>の<strong>35.99999849999995</strong>を直接<strong>int</strong>へ変換します。<br><span class="ymarker"><span class="swl-marker mark_yellow"><strong>double</strong>から<strong>int</strong>への変換では、<strong>「<span style="color: #ff0000;"><span class="swl-inline-color has-black-color">小数点以下は切り捨て</span></span>」</strong>になります。</span></span></p>



<p><span class="ymarker">なので、<span class="swl-marker mark_yellow">限りなく36に近い35.9999&#8230;でも35になってしまう<span style="color: #ff0000;"><span style="color: #000000;">の</span></span>ですね。</span></span></p>



<h3 class="wp-block-heading">test2の場合</h3>



<p>こちらのケースは、まず<strong>double</strong>の<strong>35.99999849999995</strong>を<strong>float</strong>へ変換します。</p>



<p><span class="ymarker">この時に、<strong>float</strong>の方が<strong>double</strong>より有効桁数が小さいので、<span class="swl-marker mark_yellow"><span style="color: #ff0000;"><span class="swl-inline-color has-black-color">floatの有効桁数に収まるように「</span></span><strong><span style="color: #ff0000;"><span class="swl-inline-color has-black-color">四捨五入</span></span>」</strong>されます。</span></span><br>floatの有効桁数は6桁です。</p>



<p><span class="ymarker">有効桁数に収まるように四捨五入すると、36.0になるわけですね。</span></p>



<p>36.0のfloatをintに変換する時はそのまま36のままです。<br>小数点以下を切り捨てても変わらないので。</p>



<h3 class="wp-block-heading">ようするに…</h3>



<p><span class="swl-marker mark_yellow">test1とtest2の結果の違いは、キャストの方法が違いから丸めの処理が異なっているのが原因だったというわけです、</span></p>



<ul><li>test1(double→int)は、小数点以下を切り捨て</li><li>test2(double→float)は、有効桁数６桁で四捨五入</li></ul>



<h2 class="wp-block-heading">対応策</h2>



<p><span class="swl-marker mark_orange">理屈がわかったところで<span class="rmarker">、<strong>「test1もtest2も正確な計算結果を返す保証がない」</strong>ことがわかりました。</span></span></p>



<p>test1は、既に前述の通り誤った値を返しています。<br>test2は前述のケースでは正しい値を返していますが、たまたま四捨五入の結果正しい値になっただけです。<br>test1と同様に誤った値を返すケースもあるでしょう。</p>



<p>対応策を調べてみると、下記のような方法があるようです。</p>



<ul class="is-style-good_list"><li>BigDecimalを使う</li><li>整数で処理する</li><li>有効桁を決めて四捨五入する</li></ul>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8165411688183013"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-8165411688183013"
     data-ad-slot="6898168693"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">おわりに</h2>



<p>計算系の処理を実装する時は気をつけないといけませんね。<br><span class="swl-marker mark_orange">特に小数点を扱うような処理の時は要注意です。</span></p>



<p>それにしても、teratailにはすごく助けられました。</p>



<p>投稿してから最初の回答をもらうまで５分と、早すぎてびっくりしました。</p>



<p>一人で考えていると煮詰まっている時は、誰かの意見を聞くとパッと視界がクリアになって理解できることも多いです。</p>



<p><span class="ymarker">自宅で一人で仕事していて、相談相手がいない僕のような人でも気軽に質問できるteratailは救世主的存在ですね</span>。</p>



<p>プログラミングで困ったことがあれば、是非使って見る事をオススメします。</p>



<p>この記事が少しでも参考になれば幸いです。</p>



<p>最後までお読み頂きありがとうございました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dev-memo.net/floating_point_number/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PhpStormに乗り換えて良かった！オススメの５つの機能</title>
		<link>https://dev-memo.net/phpstorm_better/</link>
					<comments>https://dev-memo.net/phpstorm_better/#respond</comments>
		
		<dc:creator><![CDATA[キミヒラ]]></dc:creator>
		<pubDate>Wed, 28 Feb 2018 10:09:54 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PhpStorm]]></category>
		<guid isPermaLink="false">https://dev-memo.net/?p=717</guid>

					<description><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2017/10/YAMA_DSC2546_TP_V-1024x681.jpg" class="webfeedsFeaturedVisual" /></p>EclipseからPhpStormに乗り換えて２年目に突入し、迷わずPhpStormのライセンスを更新しました。 開発効率はだいぶ上がったし、開発していてストレスを感じません。 有料ですが、かなり満足しています。 全体的 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2017/10/YAMA_DSC2546_TP_V-1024x681.jpg" class="webfeedsFeaturedVisual" /></p>
<p>EclipseからPhpStormに乗り換えて２年目に突入し、迷わずPhpStormのライセンスを更新しました。</p>



<p>開発効率はだいぶ上がったし、開発していてストレスを感じません。</p>



<p>有料ですが、かなり満足しています。</p>



<p>全体的に素晴らしいPhpStormですが、特にお気に入りの機能を挙げてみようと思います。</p>



<p>PhpStormへの乗り換えを検討している人の参考になれば幸いです。</p>



<h2 class="wp-block-heading">検索機能が逸品</h2>



<p>コード検索ってIDEの機能で一番使う機能で、最も重要な機能の一つかもしれません。</p>



<p>検索で重要になってくるのが速度。</p>



<p><span class="ymarker">PhpStormはこの検索機能が逸品です</span>。</p>



<p>感動するレベルで早いです。</p>



<p>僕が開発しているプロジェクトの規模だと、検索窓に<span class="ymarker">１文字打ち込む毎に一瞬で検索が完了</span>します！</p>



<p><span class="swl-marker mark_yellow">検索機能の速度が早いと、驚くほどストレスがなくなりますよ。</span></p>



<h2 class="wp-block-heading">デプロイ機能が逸品</h2>



<p><img decoding="async" class="alignnone size-large wp-image-718" src="https://dev-memo.net/wp-content/uploads/2018/02/network-2402637_1280-1024x576.jpg" alt="" width="700" height="394" srcset="https://dev-memo.net/wp-content/uploads/2018/02/network-2402637_1280-1024x576.jpg 1024w, https://dev-memo.net/wp-content/uploads/2018/02/network-2402637_1280-300x169.jpg 300w, https://dev-memo.net/wp-content/uploads/2018/02/network-2402637_1280-768x432.jpg 768w, https://dev-memo.net/wp-content/uploads/2018/02/network-2402637_1280.jpg 1280w" sizes="(max-width: 700px) 100vw, 700px" /><br><strong>Eclipse</strong>で開発していた時は、サーバーへのファイルのアップロードは<strong>FileZilla</strong>や<strong>WinScp</strong>など別のツールを使っていました。<br>Phpstormにはデプロイの機能があるので、この機会に別のツールを使うのをやめてPhpStormに一本化してみたんです。</p>



<p>このPhpstormのデプロイ機能が優秀なんです。</p>



<p><span class="swl-marker mark_yellow">ローカルとアップロード先のファイルの差分がひと目で分かるようになっているんですよ。</span><br>差分のあるファイルの一覧が表示されますし、ファイルの中身の差分まで見れます。</p>



<p><span class="ymarker">差分を見ながらサーバーへのデプロイができる親切設計なんです。</span></p>



<p>今まで、修正ファイルの差分を１つ１つ確認しながらアップロードしていたので、これだけでデプロイにかける時間がぐっと減りました。<br>差分チェックの機能も充実していて、ファイル更新漏れなどのデプロイミスも防げます。</p>



<p>僕は使っていませんが、自動でサーバーへファイルをアップロードできる機能もあります。</p>



<h2 class="wp-block-heading">デフォルトのルック＆フィールが見やすい</h2>



<p>僕はコーディングに使うエディターの背景は黒派です。</p>



<p>黒い背景にすると目が疲れないし、見た目をなんとなくかっこいいですよね。</p>



<p>多くのIDEの背景のデフォルトが白なので、黒にカスタマイズする事になります。<br><strong>Eclipse</strong>の時は、テーマをWebから探してきてそれを適応させていました。</p>



<p><span class="swl-marker mark_yellow"><strong>Phpstorm</strong>は白背景と黒背景の２択の選択肢になっていて、黒背景の配色がデフォルトのままでもかなり見やすいです。</span></p>



<p>特別カスタマイズしたいところはなく、満足してます。<br><span class="ymarker">カスタマイズ不要で見やすい黒背景に設定できるのは地味にありがたい</span>ところです。</p>



<h2 class="wp-block-heading">デバッグ機能は便利</h2>



<figure class="wp-block-image"><img decoding="async" width="1024" height="575" src="https://dev-memo.net/wp-content/uploads/2016/10/math-1500720_1280-1024x575.jpg" alt="" class="wp-image-1110" srcset="https://dev-memo.net/wp-content/uploads/2016/10/math-1500720_1280-1024x575.jpg 1024w, https://dev-memo.net/wp-content/uploads/2016/10/math-1500720_1280-300x169.jpg 300w, https://dev-memo.net/wp-content/uploads/2016/10/math-1500720_1280-768x431.jpg 768w, https://dev-memo.net/wp-content/uploads/2016/10/math-1500720_1280.jpg 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><strong>デバッグ</strong>は<strong>Eclipse</strong>でも出来る思うのですが、設定が面倒でやってませんでした。</p>



<p><strong>PhpStorm</strong>に乗り換えたという事で、デバッグ設定も一緒に行ってみました。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-フリーランスさばいばる wp-block-embed-フリーランスさばいばる"><div class="wp-block-embed__wrapper">
https://dev-memo.net/phpstorm_debug/
</div></figure>



<p>やっぱりデバッグ機能は便利ですよね。</p>



<p><span class="ymarker">開発効率が格段にあがりま</span>。<br>PhpStormのデバッグは簡単に設定できるし、使いやすいので是非設定してみましょう。</p>



<h2 class="wp-block-heading">未設定の変数の使用や英語のスペルミスに気づける</h2>



<p>PHPって変数の宣言周りの制約ってゆるいですよね。</p>



<p>宣言していない変数を参照してもエラーにならずに通ってしまう…</p>



<p>変数のスペルを間違えたりしてもエラーにならないので気づず。<br>うまく動かないと思って調査したら、変数名のミス…</p>



<p>僕はもともとJAVAを使っていたので、この辺りの緩さにはちょっと不満を感じたりもしていました。</p>



<p><span class="ymarker">PhpStormは変数名のチェックを行ってくれるので、宣言していない変数名をいきなり参照するとハイライトして警告してくれます</span>。</p>



<p>これだけで、凡ミスが減りました。</p>



<p>あと、英語のスペルチェックも嬉しい機能です。</p>



<p><span class="ymarker">これがあると、わざわざスペルを調べないで感でタイプしてみて、警告がでたら正しいスペルを調べるようになりました。</span></p>



<p>英語が苦手だけど几帳面な僕は、クラス名や変数名を決めるたびに英単語を調べていたのでこの無駄がなくなるだけでも地味に開発効率アップです。</p>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8165411688183013"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-8165411688183013"
     data-ad-slot="6898168693"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">PhpStormでストレスフリーな快適は開発を！</h2>



<p>これらの機能のおかげで、今までストレスに感じていた作業がとてもやりやすくなりました。</p>



<p>本当にオススメです。</p>



<p>１ヶ月はトライアルで試せるので、悩んでいる方は是非試してみる事をオススメします。</p>



<p>もし乗り換える気になった方は、こちらの記事に乗り換え方法を解説しています。</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://dev-memo.net/wp-content/uploads/2017/10/YAMA_DSC2546_TP_V-300x200.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://dev-memo.net/eclipse_to_mac/">EclipseからPhpStormへ乗り換える時に行った事</a>
						<span class="p-blogCard__excerpt">僕はもともとJavaエンジニアだったので、PHPの開発ももっぱらEclipseです。もう１０年近くEclipseを使っていました。 使い慣れたIDEで不満もなく使っていました。 ただ&#8230;</span>					</div>
				</div>
			</div>
		</div>


<p>少しでも参考になれば幸いです。</p>



<p>最後までお読み頂きありがとうございました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dev-memo.net/phpstorm_better/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Go】JSONのパースが失敗する原因</title>
		<link>https://dev-memo.net/go_json_purse/</link>
					<comments>https://dev-memo.net/go_json_purse/#respond</comments>
		
		<dc:creator><![CDATA[キミヒラ]]></dc:creator>
		<pubDate>Fri, 23 Feb 2018 11:56:08 +0000</pubDate>
				<category><![CDATA[GO]]></category>
		<guid isPermaLink="false">https://dev-memo.net/?p=709</guid>

					<description><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2018/02/work-management-907669_1280-1024x669.jpg" class="webfeedsFeaturedVisual" /></p>Go言語で、JSONをパースする際に躓きましたので原因をまとめておきます。 「json.Unmarshal」でJSONパースする際のハマったポイントです。 マッピングのミス 単純なミスなのですが、変数の後ろのタグの記述に [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://dev-memo.net/wp-content/uploads/2018/02/work-management-907669_1280-1024x669.jpg" class="webfeedsFeaturedVisual" /></p>
<p>Go言語で、JSONをパースする際に躓きましたので原因をまとめておきます。</p>



<p><span class="swl-marker mark_yellow">「<strong>json.Unmarshal」</strong>でJSONパースする際のハマったポイントです。</span></p>



<h2 class="wp-block-heading">マッピングのミス</h2>



<p>単純なミスなのですが、変数の後ろのタグの記述にミスがあると、変数に値が代入されません。</p>



<p>僕は下記のようなミスをしました。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>type Data struct {
	DataList []string `json:data`
}</code></pre></div>



<p><span class="rmarker">タグのKEY名をダブルクォーテーションで囲っていません。</span><br>これだと正しくマッピングされないので、空で返ってきてしまいます。</p>



<p>正しくはこうなります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>type Data struct {
	DataList []string `json:&quot;data&quot;`
}</code></pre></div>



<p><span class="rmarker">混乱したのが、タグに指定した値が上記ように不正だと変数名でマッピングされるんです。</span></p>



<p>なので、タグが間違っているのにマッピングが成功しているように見えたりして余計に混乱してしまいました。</p>



<h2 class="wp-block-heading">型の不一致</h2>



<p><span class="rmarker">JSONのNumbers型をstringで受けてしまうと、正しくパースされません。</span><br>JSONの<strong>Numbers型</strong>と<strong>String型</strong>は下記のような違いです。</p>



<p><strong>Numbers型のJSON</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>{
  &quot;number&quot;: 111
}</code></pre></div>



<p><strong>String型のJSON</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>{
  &quot;number&quot;: &quot;111&quot;
}</code></pre></div>



<p><strong>Numbers型</strong>は、値がダブルクォーテーションで囲われていない数値のものです。</p>



<p><strong>Numbers型</strong>は、Go側では<strong>string型</strong>ではなく、<strong><em>json.Number型</em></strong>で受け取ると正しく動きます。</p>



<p><strong>Goの構造体</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>type Data struct {
	Number     json.Number `json:&quot;number&quot;`
}</code></pre></div>



<p>これでOKです。</p>



<p>僕は、上記の２点の修正で無事にJSONをパースできました。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p><em><strong>json.Unmarshal</strong></em>でJSONをパースが失敗した時は下記を確認してみましょう。</p>



<ul class="is-style-check_list"><li>KEY名をダブルクォーテーションで囲っているか？</li><li>受け取るデータの型は合っているか？</li></ul>



<p>少しでも参考になれば幸いです。</p>



<p>最後までお読みいただきありがとうございました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://dev-memo.net/go_json_purse/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
