WEBデザイナー"Zoe"の「サービスぶち上げ奮闘記」 -2ページ目

WEBデザイナー"Zoe"の「サービスぶち上げ奮闘記」

プログラミング初心者のWEBデザイナーが、WEBサービスを立ち上げるまでの奮闘記です。勉強する中で調べたことや、PHP,SQL,フレームワーク,セキュリティ等分かり易く説明したサイトがあればまとめてます。

どうもZoeです。

冗長化と冗長データ。似て非なるものです・・(-公-;)ムムッ
ナンノコッチャと思うかもしれませんが、理解するまでにハマったので、
めちゃくちゃ簡単な言い方でメモ。

冗長とは


簡単に言うと「余ったデータ、余分なデータの事」

データベースの冗長化とは


こういう使われ方をしている場合、データを複製するバックアップみたいなものです。
例えば、「サーバーの冗長化をして~」という文章があれば、
「サーバーを余分に用意して、サーバーが破損して飛んだ場合等に備えて~」と読み替える。
冗長化する、というのは”あえて”余分なデータを用意するということです。

冗長データとは


この場合の冗長の意味は「無駄なデータ」だと思って間違いないと思います。
例えば下記のような、注文履歴のテーブルがあるとします。

注文ID取引先商品番号1商品名1商品番号2商品名2and more...
1ヤマD電機R-340冷蔵庫D-101電子レンジ.... and more
2ヨドBCAMD-101電子レンジ(空白)(空白)...and more
3ビッグCAMC-101一眼レフカメラ(空白)(空白)...and more


この場合、商品数が1個しか無いものは、2個め3個め分のデータが空白となり、無駄になってます。これを冗長なデータといいます。
解決策として下記にような設計にしとくと、無駄なセル(空白)がなくなります。(正規化)

注文ID取引先商品番号商品名
1ヤマD電機R-340冷蔵庫
1ヤマD電機D-101電子レンジ
2ヨドBCAMD-101電子レンジ
3ビッグCAMC-101一眼レフカメラ


スッキリしましたね!ヽ(=´▽`=)ノ
データベースは同じような内容が何百・何千行と入っていくので、その度に空白のデータがあると、空白データ ✕ 何百・何千の行数分 ...と結果的に膨大なデータ領域が無駄になってしまいます。

また、それを防止するために適切な形に直す行為を正規化と呼びます。
あわせて覚えておくといいと思います(^^)



どうもZoeです。

前回もSQL入門系のサイトをババババー!!っと書き連ねましたが、
下記のサイトとあわせて読むと更に理解が深まると思います!ヽ(=´▽`=)ノ

初心者用データベース入門
  →初心者用と書いてありますが、内容は中級者向けな気がします。
   前回紹介した超入門の次に読むと理解できるかも。

データの正規化
  →データの正規化の話です、サイトは古臭いですが、
   内容は図も使ってあって、わかりやすいです。

冗長化とは - 意味/解説/説明/定義 : IT用語辞典
  →ちらほら色んなサイトで単語として出てきて最初意味不明だったので載せときます。
   データの冗長化とデータベースとは密接とまでは行かないにしろ間接的に関係してきます。

データベースの基礎 | データベース冗長化 | 信頼のシステム開発.COM
  →基礎と書いてありますが、結構内容が難しいです。
   冗長化の話やDB設計の話等、理解出来ればかなり参考になります。
   専門用語が多いので、IT用語辞典と併用して閲覧してみてください。

データベース設計書 - ウチコムラボ
  →なんとアプリケーションのDB設計書・定義書がまるっと載っていて、
   そのテンプレートも配布しているサイトです。
   実際DB設計書はサンプルデータが少なくて勉強しづらいので、
   実例を見ながら勉強できるのはかなり有難いです。

phpMyAdminの使い方
  →その名の通りphpMyAdminの使い方です。
   ほとんどのサーバーで使われているので、あわせて勉強しておくといいと思います。

他にも良さげなサイトがあれば随時紹介していきます!
どうもZoeです。
SQL文という謎言語を覚えるために、奮闘しましたので、まとめたいと思います!
ホントに苦労しました!最近頭が疲れきってます!

SQL文については下記のサイトが物凄くわかり易かったので、一気に読破しました!!
  ・さらっと覚えるSQL&T-SQL入門(1):初めてSQLコマンドを叩く緊張と感動の一瞬 (1/3) - @IT
  →自分の環境がMACなのでSQL Server 2005が使えませんでしたが基本は一緒のようです
  ・とりあえずこれだけ知っとけSQL
  →乱暴なタイトルに関わらず(笑)なかなかわかりやすいです
  ・連載記事 「今から始める MySQL入門」
  →PHPの基本を復習+どうやって接続するのか等わかりやすく載ってました


また、MAMPのターミナルで動かす際に下記の記事を参照しました。
MAMPでmysqlにコマンドラインから接続するメモ - しのぶの日記 (技術編)

それと適当にイジイジしながら勉強する用にこんな便利なサービスが有りました(^^)
  ・SQL Fiddle
■SQL Fiddleの使い方
  1.左側にCREATE 文とINSERT文を入れて「Build Schema」を押す(サンプルデータを作成)
  2.右側にSELECT文を入れてみる

これで大体SQLを理解できたかと思います(´・ω・`)
こんにちは、Zoeでーす。

僕がどうやって勉強してるのか、気になる人もいると思いますので、
今日は僕の勉強法についてお話したいと思います。

先に行っておきますが、僕は結構「馬鹿」です。頭がわるーいのです。
元々天才的なプログラマーさんのような頭は持ちあわせておりませんし、
そこまでになれるとも思っておりませんヽ(=´▽`=)ノあはは

ですので、かなり凡人的で超絶シンプルかつ泥臭い勉強法になります。
はたしてその実態は・・・!!?

分からないことをひたすらググりまくって、
似たような記事を沢山読んで、沢山作る!!!!!( ・`д・´)シャキーン!

です・・・(;´д`)
なんでそんな非効率的な方法で勉強してるの?馬鹿なの?と思われるかもしれません。
自分でもかなり非効率的な勉強法なんだろうなぁと思ってはいるのですが、
これよりいい方法が思い浮かびませんし、自分に一番合っていると思っています。

泥臭くググって作りまくるのが最高だと思う理由


1.お金がかからない


これはかなりデカいです。
書籍を買うと一冊3,000円~5,000円ぐらいしますよね・・。貧乏人の僕には大変な痛手です。
ググるとなんとタダ!プログラミングの勉強ならわざわざ入門書を買わなくても、沢山入門サイトが出てきます。内容もサイトによっては書籍より情報が多かったりします。
「ただより高い物はない」なんて言葉がありますが、僕から言わせたらキチンとメリット・デメリットを把握した上でのタダなら完全に美味い汁だけ吸えます。
ググることには何のリスクもないのですから大いに活用していきましょう。タダ最高!無料時代最高!

2.コーディングは手を動かさないと覚えない


これはゴリゴリ作りまくって勉強してる理由です。
結局書籍やサイトを読んで覚えた気になっていても、実際コーディングする時に手が止まってしまいます。HTMLやCSSも作りまくって覚えました。これは”勉強”というより、スポーツの”練習”に近いと思います。身体に、指にコードを染み込ませるのです。
玄人になったら、タイピングと一緒で、その内勝手に手が動くようになってるはずです。

3.繰り返さないと忘れる


人間忘れる生き物です。都合のいい事だけ覚えてる人って多いですよね。僕がそうです\(^o^)/コンニチハ
自虐っぽくなりますが、僕は記憶力がそんなに高くありません。元々コツコツ勉強するようなタイプでもなくて、高校の時のテストなんか「どうせ忘れるんだから、前日勉強!一夜漬け!」と完全に開き直っておりました。また、映画や漫画、人の話や名前(これは大変失礼ですが(;´д`))等など、3ヶ月もその事柄から離れれば綺麗サッパリ忘れてしまうのです。
人の記憶には忘却曲線というのがありまして、”復習”しないと記憶が徐々に薄れていき、いずれ完全に記憶の海の底へ・・・そしてついに完全に忘れてしまいます。(関連の事柄で突如記憶の底から思い出す事もあります)
たまに一度覚えたことは忘れないような天才的な人もいますが、僕は凡人ですので努力しないといけません。天才じゃなくても努力は出来ますから。
そこで同じような入門サイトを何件も訪問して同じような内容を読んでいると、例えばPHPであれば「あぁどうせ最初は環境設定してからprintかechoでしょ?」という風にそれが”あたりまえ”になってきます。あたりまえになっているという事は覚えているのです。それが当たり前になったら、ようやく実践で使えるようになってます。
この忘却曲線の考え方を使えば、何分後、何時間後、何日後に同じ内容を読んで確実に記憶する、といった事ができるのですが、覚えることが多く(PHP,SQL,セキュティ,サーバー・・その他諸々)いちいちスケジュールを組むのもめんどくさいし、各サイトの方針や考え方によって”覚えといて当たり前”のものが違うので、似たような内容であっても読んでみると新しい発見があるものです。

いかがでしたでしょうか?
以上のような考え方から、僕は泥臭くググってコードを書きまくるという勉強法を推奨します。笑
もしもっといい勉強方があれば、教えて頂けると幸いです(´・ω・`)
こんにちはZoeです。
「なんでアメブロで書いてんの?」と知り合いに言われたので、簡単に説明しとこうと思います。

勿論WEBデザイナーだったら、WordpressとかMTとか使って、独自ドメインとって、Originalのデザインでかっこ良く作れやぁあwっくぁwせdrftgyふじこlp;@
的な意見は最もだと思ってますが、

ただまぁ・・
色々めんどくさいんですよねぇ~(笑)

僕が思うアメブロのメリット・デメリットをいうと、

■メリット
 ・機能が割りと充実してる
 ・無料ですぐ使える
 ・コミュニティが充実してる(人が来やすい&コメント増やしやすい&more)
 ・自動ペタソフトとか使えば、ブログへのリンクが簡単に増やせる(ほんとはダメです)
 ・ameblo.jpのドメイン効果高い(初記事書いて3時間後にはクロールされてました)

■デメリット
 ・SEO的に無料ブログとかどうなの(せめて文章pタグでククレや)
 ・アクセス解析水増ししすぎだろ
 ・なんかショボーン(´・ω・`)な感じになる

といった感じです。他にも色々あるとは思うんですが・・。

WordPressでもインストールから設定まではすぐ出来ちゃうんですが、一から構築すると、SEOやらなんたらかんたらで結果時間取られちゃうんで、めんどくさいです。
アメブロならある程度のSEO対策は、タイトルと説明文書いただけで終わりますし、アクセスの水増しとかはAnalyticsを別個で入れれば問題ないです。なんかショボーン(´・ω・`)はCSSいじれるのである程度対応可能な気がします。

W3C準拠は出来ないことないですが、書きにくいです。(実際記事部分はarticleタグで書かれてましたが、本文部分はdivのみ)
ということで主なデメリットをいうならココだけな気がします。

メリットとしてはコミュニティが充実してる(SNSちっくな)所が一番ですかねぇ。
誰かプログラム教えてくださいっていう、人任せな気持ちもかなりあります。笑
どうもZoeです。

大分PHP的な頭になったので、調子に乗ってドットインストールで紹介されているPHPのWEBアプリケーションフレームワークである「CakePHP」に挑戦してみました。

ハッキリ言います。

無理です!!!

えぇ、難しすぎです。何仰っているのかさっぱり意味がわかりません。僕がなめておりました。すいませんでした。

勿論その通ーりに作ったら出来ましたが、何が起こってそうなってるのか分かりません。
ViewとかControllerとか言われても・・
$set->$なんちゃら ←なんだこれ?えぇえ?

でもこのフレームワークってのが使えないと、アプリケーション開発なんて無理っぽいです。
それこそ一からPHPを組まなくてはいけません・・・。

うーーーん・・・・どうすれば??
仕組みを勉強しないと行けないんでしょうか。やばいです。挫折しそうです・・(´Д`)
MVCの仕組みから勉強してみますか・・。
あとMの部分はやはりデータベース周りになってくるので、データベースを勉強してからじゃないと理解できそうにありません。

ということで、先にDBを勉強することにします・・。
うん、道は長い。
どうもZoeです。

ここ2週間ぐらいひたすらPHPプログラムを勉強してます。
一応ドットインストールのPHP入門はひと通り消化しまして、基本的な文字列とかファイルとか数値とかの操作は大体理解出来たかなぁと思ってます。

それから、これまたドットインストールの、おみくじプログラムとか、カレンダープログラムなんかのミニプログラムも作ってみて、なんとなくプログラマーちっくな事が出来るようになりました。
見ては作り見ては作り・・・としている内にプログラムにも大分慣れてきて、少しずつではありますが、プログラミングの楽しさが分かってきたかなぁと(´・ω・`)
ちなみに前回酷かった関数の理解も大分出来るようになってますヽ(=´▽`=)ノ

また、ところどころ意味の分からないプログラムや単語が出てくるのは、とにかくググって調べて理解してます・・。意味不明なIT用語に関してはe-Wordsというサイトを利用してます。
IT用語なら何でも載ってるのでサッと調べられて結構重宝してます。

ただ、その単語の説明文の中で更に意味の分からないワードが出てきて、それを調べると更に意味の分からないワードが出てきて・・・の無限ループに陥る事があり、大変くたばれ感が出るので、注意が必要です(((( ;゚д゚))))アワワ

一ヶ月やって、やっとPHPの基礎を身につけましたが、正直あまりに長い道のりだというのを実感してます。笑
いつになったらWEBサービスを作ることができるのやら・・・(´Д`)ハァ…

それから、この先勉強したほうが良さげなものを調べたので、まとめておこうと思います。忘れそうなので。

1.データベース(SQL)


調べたらほとんどのサービスにデータベースが使われてました。(そりゃそうか)
中でも多く使われてるのがMySQL。僕が大好きなWordPressも PHP + MySQL でした。
SQL文がちょっと難しそうなんですが、これも書いて覚えるしかなさそうです・・・。

2.セキュリティ


個人情報を扱うことになるので、必須ですよね。
専門学校時代にセキュリティの授業を受けているので、クロスサイトスクリプティングとかクロスサイドリクエストフォージェリとかSQLインジェクションとか、基本的なことは知ってるんですが、それをPHPとデータベースを使った時どう対策すればいいのかが分からないので、復習も兼ねて勉強していこうと思います。

3.クライアントサイドプログラミング


業務でjqueryのプラグインとか使ってサイトを作っているので、使い方は知ってるんですが、こちらも一から何かを作ったことがないので、時間かかりそうです。
どうせなら流行りのAjaxとか使ってシャンシャン動かしたいですねぇ~。

4.サーバーに関する知識


無くても作れなくはなさそうですが、PHPでバグった時にサーバーが悪かったりするらしいので、あるに越したことはない模様。これは流す感じで勉強します。


ということで、軽く調べただけでも、多いこと・・\(^o^)/

正直年単位のスケジュールになるんでは無いかと感じてますが、
やる気があるウチに、なる早で習得していこうと思います!!
こんにちは。Zoeです。

作りたいWebサービスが決まったので(前回の記事を参照)、どうやったらこのようなWEBアプリケーションが作れるのか調べてみましたので、簡単にまとめてみますヽ(`▽´)/

まず、超おおまかな流れとして、
  企画 → 開発 → 公開
というものがあり、殆どこの中の開発に時間を使います。
勿論この中で詳細なタスクが諸々あるんですが。

1.企画


自分の作りたいものを企画として纏める作業。
「こうこうこういうサービスで、こういう機能やああゆう機能が必要だ」といった、アイディア出しの段階から、データベース設計や仕様書の作成までを一般的に企画というみたいです。

2.開発


企画した内容(主に仕様書)に従って、サイトのデザインとコーディング(がりがりプログラミング書くのも含む)をしていきます。
HTMLとCSSはまぁWEBの制作やってるので出来るとして、問題はプログラミングです。
というかココが一番重要ですが、一番出来ない部分でもあります(;´д`)トホホ…
こちらの記事でプログラミングについて軽く纏めました
普通の会社では、デザイナーとプログラマーが共同で作成していきますが、このブログでは全部一人で行うことを目標としてます。
また、通常は分業で作業を進めるため、フレームワークやテンプレートエンジンといった、デザイン部分(HTML+CSS部分)とプログラム部分(PHPやRUBYやPERL等)を分けて動作させる仕組みがあります。これらを使用すると、後々の管理も凄く楽になるそうな。

3.公開


開発したものをいよいよ公開するセクションですヽ(=´▽`=)ノ
しかし、WEBサービスは公開しただけで終わりではありません・・。
というか、WEBサービスで一番大事なのは「公開後の改修」です。
公開したサービスをより良いものにするために、追加したほうが良い機能を作成したり、ユーザーからのフィードバック等を形にしていきます。

効率よくWEBサービスを運営するコツは、まず最低限の機能が出来た段階で公開し、追加の機能を開発→公開を繰り返すことだと言えるでしょう。
こんにちはZoeです。

PHPを覚えてみるの2回目です。
前回は変数とかIF文FOR文周りをやったので(前回の記事参照)、今日は配列とか関数とかクラスというのをやっていこうと思います(´・ω・`)

また前回紹介した、ドットインストールの動画が最高にわかり易かったので、基本的にこちらのPHP入門動画で紹介されているプログラムを作成していって、よく分からなかった時に、PHP入門等のサイトで知識を補足していく、といったやり方で勉強していきます。(ちなみに昨日までで、PHP入門(基本編)の#14まで消化してます)

業務でWordPressなんかいじってると、簡単なIF文とかforeach文とか強制的にいじらされて(その時はネットに落ちてるコードを丸コピしますが・・)感覚的になんとなく理解できるというのもあり、結構ここまではサクサクといってます。

でも動画を見てると、whileは知ってたけど do while は知らない・・とか、
ifは知ってるけど三項演算子とか初めて聞いたぞ!っていうのがちょくちょくありました。
やっぱり一からちゃんと勉強しとかないとですね・・(;´д`)

今回は#15の配列操作から、勉強していきますヽ(=´▽`=)ノ

ふむふむ・・
ほぉほぉ・・
うん、難しい・・。

覚えること多すぎやしませんかね?(;´д`)
配列と関数だけで、結構あるんですが・・笑
引数とか戻り値とか言われてもかなり意味不明です!!!なんか早くも辛いです!!
しょうが無いので(;´д`)トホホ…な感じで、色々と調べてみました。

ふむふむ・・
ほぉほぉ・・
うん、やっぱ難しい・・。
でも、なんとなーくですが分かった気がします。

要は入れ物みたいなもんなんですね。
  定数:1つだけ入る、取り出しのみ出来る箱
  変数:1つだけ入る、取り出し・入れ替え自由な箱
  配列:何個でも入る、小分けされた、取り出し・入れ替え自由な箱(配列箱の中に定数箱を入れることも出来る)

関数はちょっと特殊な箱で、プログラムそのものを入れれる箱みたいです。

うーん難しい。
自動販売機みたいな・・・?

引数っていうのが、100円玉とか500円玉とかで、それに応じて商品(戻り値)が一つだけ出てくる。みたいな・・・?

ん?
もしかして自動販売機そのものがそういうプログラムで出来てるのか!!?
もしかしてもしかするのか!!?

自動販売機の真相に気がついてしまった・・。
我ながら天才かもしれない・・・ε- (´ー`*)フッ

まぁ冗談はさておき、上記の認識であらかた間違ってないんでは無いかと思います・・笑

もっと先に進みたいのは山々なんですが、今日は#15から#19までを理解するので精一杯でした。
なにげに一日中色んなプログラムを書いてテストしてました・・・(;´д`)

今週はまだまだ基本を勉強することになりそうです・・。
こんにちはZoeです。

覚える言語も決まった所で、早速勉強していこうと思うんですが、
まぁ何からやっていいのやら・・

とりあえず、色々とググってみました(´・ω・`)
「PHP 入門」とかでググると色々出てきますねぇ・・・。
  ・PHP入門
  ・初心者用PHP入門
  ・PHP入門 - ポンクソフト
..and more
といった具合です。これだけアレば書籍買う必要もなさそうですねヽ(=´▽`=)ノ
更に動画でプログラミングが勉強できるという、すばらしいサイトを発見しました!
  ・3分動画でマスターする初心者向けプログラミング学習サイト - ドットインストール
とりあえず、上記のサイトを読みあさって、PHPの基本を勉強していこうと思います。
WEBサービスへの道はだいぶ遠そうですね・・・(;´д`)

まぁ愚痴ってもしょうが無いので、まず環境の構築からしていこうと思いますが、僕のPCはMACなので、XAMPPが動きません。

代わりに「MAMP」というMAC用のXAMPPみたいなのを入れてます。(下記参照)  ・MAMPのインストール for Mac-独学!未経験からWebデザイナーになる!!実は結構制作で使うので、既に環境は問題なく構築出来てます。

ということで、早速ハローワールド的なPHPプログラムから作成していきます!!
普通にHTMLを書いて、拡張子をphpにする・・と。
んで、表示部分に・・・

<?php echo "はろわ!^^" ; ?>


こんなもんでいいでしょうか・・。さてどうなるか・・・。

helloどん!!!!



動いたァッァああああああくぁwせdrftgyふじこlp;@!!!!???
感動ですヽ(=´▽`=)ノ

PHPのプログラムは普通にタグの中に書き込んでいいみたいです。
イメージとしてはH1とかPとかと同じように「PHPタグ」がある、という感じですかね?

echoっていうのは何かを表示させるプログラムらしいです。
らくしょっすね!更に行きます!
今度は、定数と変数という謎機能を使っていきます!
プログラムで使う数字や文字を、予め入れておくらしいです。

■定数と変数の違い
  定数:最初からAだったら最後までA(絶対に変わることのない値)
  変数:最初AでもBにもCにもなれる、変身機能付き

定数の方が男らしくてカッコイイですね!笑
  定数{まっすぐ自分の言葉は曲げねぇそれがオレの忍道だ!!)
とでも言い出しそうな頑固さを感じます\(^o^)/
ということで、以下のようなプログラムを作りました。

<?php
// 定数
define(AAA,"まっすぐ自分の言葉は曲げねぇそれがオレの忍道だ!!")
// 変数
$abc = "のびたのくせに!";
?>
<p>定数{<?php echo AAA; ?>)</p>
<p>変数{<?php echo $abc; ?>)</p>


っとこんな具合です。
さてどうなるかぁ・・


サーバーエラードン!!!!!!

うわぁぁぁあぁ!!!!!!もうやりたくなぁぁぁい!!!!!

なんでなのか・・。
エディターで見ると、普通にエラーが出てました。(ちなみにドリ使ってます)



あぁぁーーーー。
セミコロンが無いってことか・・(;´д`)

再びドン!!!


いけたあぁああああ!!!!っしゃぁ!!!!
セミコロン忘れそうなので注意しよう・・・。

その他に今日は、簡単な計算をしたり、条件分岐や繰返し文を使ってみたり、文字列操作をしたりと、プログラムの基本的な部分を触りました。
IF文も手こずったですが、文章で考えるとわかり易かったです。

もし、変数AAAが5以上だったら、
if (AAA > 5) {
}

「5以上です」と表示させる。
if(AAA > 5) {
echo "5以上です";
}

という感じですね。
割りとこのへんまではサクサクいってます。
文章を1個づつ組み立てていく論理的思考力がいるなぁと感じました。

明日は、ファイル操作とか関数とかクラスとかいうのを、使ってみたいと思います。