Hatena::ブログ(Diary)

130単位

2008-02-29

感想_11日目

最終段階の修正でした。が、あまり力にはなれませんでした。

作業中たまたま、今回の修正とは関係のないところでのバグを見つけました。ある項目のデータにおいて、DBで定義されている最大文字列長と、コードでチェックする際の最大文字列長が異なっていたのです。最初は自分の修正したコードから疑っていったので、解決までやたら時間を要しました。普通に運用してたら起こらないであろうバグで、まぁ、運が悪かったというところでしょうか。しかしいい経験にはなりました。

今回の案件は、いちおうこちらが名乗り出た形ではあるそうです。ただし、そこには営業の方やら元請けの方やら、さらに元請けの方やら、いろいろな人の思惑や事情があってのことなのだそうです。難しいものです。そういったいきさつを、ド新人の自分にも伝えていただけたことは大変ありがたく思います。やれる範囲でベストを尽くしていきたいです。

メモ_11日目

  • テストデータ作成
    • 多くの結合を伴う場合は特に、再度作成しなくてよいようにする
    • 一度に複数個のデータを作成する
    • レイアウト確認用に、最大文字列長のデータを用意する
    • 画面キャプチャする場合は、なるべく適切な値を用意する
  • プロジェクト管理

2008-02-28

感想_10日目

ようやく全体的な修正作業が終わりました。あとはテスト結果に応じて細かい修正を行っていく感じになるかと思います。

時間が少し空いたので、別の仕事を軽く任されました。Webサイト求人用コンテンツ案の作成です。30分程度Webを徘徊し、なんとか実現できなくもなさそうなものを考えつきました。こちらのサイトからヒントを得ました。

メモ_10日目

  • 求人
    • 職業訓練所で学ぶ人向けにプレゼンする機会があるらしい
    • 企業は4-8社ほど、求職者は10-20人ほどらしい
    • ただ、いい人に巡り会うことは少ないらしい
    • 異業種からの転職者だと特に、理想と現実の差に苦しんだりするらしい
  • 勉強会@名古屋
    • どこが開催しても、いつも似たような面子が集まってしまうらしい
    • そのため、なかなか広がりがないらしい

2008-02-27

感想_9日目

なかなか終わりません。そんな中、リーダーの方によってレビューなるものが行われました。進捗状況を把握する意味で、もともと時間が割り当てられていたみたいです。

コーディングは同い年の先輩と2人でしています。ソース内の修正点には2人のどちらかの名前が入っています。仕様変更があったため、未完成のファイルがまだ半分ほどあります。先輩の修正を自分がさらに修正したりして、無駄にややこしくなってたりもします*1

で、レビューに使われたのが一番中途半端な状態のファイルだったらしく、それには正直参りました。下っ端の自分は参加しなかったのですが、レビューが行われたのが席のすぐ横のスペースだったのです。度々発せられていたリーダーの方の厳しい言葉には動揺せざるを得ず、その間まったく集中できませんでした。あとで先輩には謝っておきました*2

4月から新しく入社される方にお会いしました。デキる人という感じでした。上場企業の現場や出世に関するお話を直に聞けたのは、良い経験になりました。

メモ_9日目

  • コーディング
    • 既に存在する修正点の変更は、名前を変えなくてよい
    • 新たに加えた修正点は、自分の名前にする
  • Blogエントリ
  • 空手仲間の結婚式
    • 胴着を着て参加し、板割りを披露する
    • "いたわり"の意味が込められている
    • 最初にわざと失敗し、「こういった苦難を乗り越えて…」なんて演出もしたりする

*1:その際、修正者名は変えなくていいと言われたので変えてません

*2:できたら確認して多少はマシなファイルを選んでほしかったですが…

2008-02-26

感想_8日目

エラーの仕組みを把握するのは重要な気がします。

ASPには、画面表示されるエラーと画面表示されないエラーがあるようです。現案件のシステムでは、後者の場合に別画面に飛ぶ仕様になっているようです。で、本日もその後者のエラーで時間を浪費してしまいました。未宣言の変数に代入してたのが原因でした。やるせないです。やはりコード修正と表示テストは同時に行うべきですね。

全体像が見えてきて分かったのは、実際修正するのはごく一部だということ。元の開発メンバーでやればほんの数日で終わるであろう案件を、なぜわざわざ請負に出したのだろうかと、不思議に思えてきたりしてるところです。

メモ_8日目

2008-02-25

感想_7日目

本日もはかどらず。あるエラーの解決に2時間ほど無駄に費やしてしまいました。

エラー画面に飛ばされてデバッグ表示もないため、まずどんなエラーなのかが分からない。その飛ばされる条件を調べようとするものの、共通関数などでファイルをまたぎまくりでさっぱり分からない。仕方がないので「response.end」で地道に当たりをつけていき、ようやく解決できました。日付を用いて表示用データを生成する関数にて、データベースから取ってくる値と、関数引数のフォーマットが異なっていたために起きていたエラーでした*1

以前と同じく先入観からのミスというわけです。要反省です。

メモ_7日目

  • 仕様
    • 修正案件の場合は、極力既存の仕様に合わせるようにする
    • 似たような処理がベタ書きで存在すれば、関数化はせずにベタ書きで
  • データベース
  • 書籍
    • 『失敗の本質』 (amazon)
    • 経営者、管理者を目指す人に特におすすめらしいです

*1:"20080225"と"2008/02/25"

2008-02-24

新しいエディタ+α

最近使うことが増えたサブのノートPCにて、Blog記事作成に関わる環境を整えました。こういう機会には、普段使い慣れているものではなく、あえて新しいものに手を出してみるようにしてます。

テキストエディタとしては、窓の社大賞2007で入賞して期待値の高そうな「Apsaly」を採用。操作を誤って記事が消えるという経験を何度かしてきているので、ブラウザ上ではあまり書きたくないのです。

また、アンカータグ自動生成用に、Firefoxの「Make Link」を導入しました。自分好みの形式にも簡単に設定変更できますし、かなり使い勝手が良い感じです。

Apsaly テキストエディタ
窓の杜 - 【NEWS】軽快で多機能なフリーのテキストエディター「Apsaly」

Make Link :: Firefox Add-ons
Make Link : CopyURL+ よりも使いやすい Firefox 拡張機能 : PamGau

2008-02-23

感想_6日目

まだ、仕様変更の可能性はあるそうです。データベースのデータは相変わらずもらえておらず、今後ももらえる見通しはなさそうです。いきなりしんどい案件に当たってしまったものです。しかし、業界的には一般的なことなのかもしれません。

そんな中、メニュー表示用のデータを自力で作成し、画面表示を行えるようにしました。背景用画像すらデータベースで指定されていました。厳密なのはいいと思うのですが、そのとばっちりをもろに受けてます。ただ、実際に表示がうまくいった時は、少しだけ気分が晴れました。やはり、動いているものを見るとモチベーションは上がります。

さて、次回からはテスト用データの作成です。相当大変であると予想されますが、現状では最も優先すべき作業なのは理解しています。「データは作っておいて損はない」という先輩の言葉もありましたし、やれるだけやってみます。

メモ_6日目

2008-02-22

感想_5日目

2日連続で生産性が低いです。"全体"を見ていないのが原因ではないかと思います。

1つのファイルのソースだけで解決しようとしても、なかなか上手くいかないことがあります。画面遷移が行われるのであれば、その前後のファイルにも目を通して、全体像を把握するのをまず優先すべきかと思います。

柔軟な思考を持ちたいものです。

メモ_5日目

*1:通は「セントス」と読むらしい

2008-02-21

感想_4日目

仕様変更は困ります。

既に修正したのをさらに修正する作業です。不毛です。プログラマはコードと戯れてればいいのでまだマシかもしれませんが、設計者の方は本当に大変そうでした。元々細かすぎる程に作成されてた設計書を、同様の細かさでわざわざ手直ししなければいけません。結局、設計とコーディングを同時進行で行う始末。ソースの理解が深まりました。

営業先にて、自社製品のネーミングの評判がなかなか良いらしいです。確かに今までにない感じではあります。自分が初めて目にしたときも、良い悪いは抜きにして、なんとなく興味が引かれたのを覚えてます。まずは何かしら印象に残るものがあること、大事な気がします。

メモ_4日目

2008-02-20

感想_3日目

今日もほどよい達成感がありました。

これまでは完了済みの修正を参考にしてやってきてたのですが、遂に1つのファイルを最初から修正する機会が訪れました。時間はかかりましたが、おそらく正しく修正できたのではないかと思います。

作業中、仕様の変更がちょくちょくあったりします。開発の難しさが自然と伝わってきます。

明日には表示のテストが行われそうです。ちゃんと動くと良いです。

メモ_3日目

  • コーディング
    • 修正/追加のコード(コメント)の量はできるだけ減らす
    • 1行の修正であれば、簡略化したコメントを同じ行の後ろに挿入
    • 仕様変更が必要と判断した場合は、速やかに設計者に伝える
  • 餃子の王将
    • 黄色い看板は京都発祥
    • 赤い看板は大阪発祥
    • 京都のほうが美味いらしい

2008-02-19

感想_2日目

複数人による開発の難しさを徐々に感じてきています。

大元の設計者、コーダー。修正時の設計者、コーダー。そのうえ、複数人で同時に開発が行われます。能力も違えば、思想も違う。コメントの書き方にしても、細かい部分で差が出てきたりします。方向性を1つに決めるのは至難の業であるような気がします。

昨日の件ですが、画面表示の問題については先輩が調べることになり、自分は先に修正を進めることになりました。比較的単純な作業ではありますが、実際少しずつでも成果は出るわけで、ほどよい達成感が得られました。

メモ_2日目

2008-02-18

感想_1日目

初日から凹み気味です。

出てたエラーを回避するためにソースを追っていったのですが、途中で行き詰まってしまいました。ある箇所で必要な変数が、宣言はされているもののどこにも格納されている様子がなかった(と思われた)からです。しかし、実際は別の関数で参照渡しによって格納されていました。引数変数名には呼び出し側と同じものを使う、という癖がついてしまっていたためのしょうもないミスでした。今後気を付けなければなりません。

修正の案件(の手伝い)を担当させていただいています。ただし少々問題があるっぽいです。というのも、画面上に表示するメニュー等の文字列が、元々データベースに格納されている仕様になっているようなのです。しかし、機密事項やらで、手元にはテーブル構造のみで、データ自体はありません。

つまり、たとえソースを修正したとしても、表示のテストが行えない可能性が高いということです。表示させるには、何らかの方法でメニュー用のデータを確保する必要があります。さて、どうしたものか。

  1. 表示の問題は後回しで、ソースの修正だけ先に行う → テストが行えないので多少リスクを伴う
  2. 表示の問題を先に解決する → テストと同時に確実に修正が行える
    1. メニュー用データのみを先方に送ってもらう
    2. 仕様書&設計書を読み、自力でメニュー用データを作成する

生産性は著しく低下すると思われますが、プロジェクトをしっかり把握する意味でも、2-2が一番現実的な解決策かもしれません。

メモ_1日目

コーディング

今後の修正予定箇所にもあらかじめコメントをいれておく。

データベース

仮データを入れる際は、フィールド情報を確認して正しい長さの値を格納する。

Web

MOONGIFT::オープンソース紹介ブログ(毎日更新)

ウノウラボ Unoh Labs

勉強になるおすすめBlog

ほか

2008-02-17

メモ_0日目

フリーソフト

CSE」…SQL操作 (つみきWeb)

※ctrl + QでSQLくずし(整形)

「Rekisa」…テキスト比較 (FrozenLib)

ASP

response.write…出力

response.end…出力停止(※以降出力しない)

コメントアウトは「'」

ほか

IIS(Internet Information Services)」…Microsoft製のサーバーソフト

preタグと改行

これまでそこそこ頻繁に「pre記法(はてな記法)」を用いたりして記事を書いてきました。

たまたま普段使わないFirefoxブラウジングしていたら、ダイアリーレイアウトが崩れてしまっていることに気づきました。原因はpreタグで囲まれた部分が改行されないことにあるようでした。

何か解決策はないものかと調べてみたら、こちらに載っていました。

Mint's log: preタグの中身がFirefoxで改行されない

Making preformated <pre> text wrap in CSS3, Mozilla, Opera and IE
pre {
 white-space: pre-wrap;       /* css-3 */
 white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
 white-space: -pre-wrap;      /* Opera 4-6 */
 white-space: -o-pre-wrap;    /* Opera 7 */
 word-wrap: break-word;       /* Internet Explorer 5.5+ */
}

管理ツールトップ > 詳細デザイン設定」にて、「スタイルシート」欄にコピペして解決です。

2008-02-16

これからの意向

縁あって、とある企業様で働かせていただくことになりました。今後は、学んだことをアウトプットする場としていきたいと思っています。見習いプログラマのメモ書き程度のものです。が、晒すことで何かにつながれば幸いです。

これまでの報告

ここ1ヶ月半放置してました。研究に関しては2ヶ月以上記事書かなかったことになります。

その研究ですが、ひとまず終了しました。

「授業の対応付け」の方法としては、ほぼベストなものが示せたのではないかと思います*1。ただ、事情により今年度1学年分のデータでしか検証してませんので、汎用性があるかどうかは分かりません。来年度、授業データの形式が変わってしまうようであれば、作り直す必要があるでしょう。もっとも、単独の情報源として運用できるように、データ構造自体を再設計するのが最善なのですけど。

「対応付け」だけでは、相互に参照しづらいという現実的な問題点は解決しません。そこで、2つの情報源を連動させて検索表示するシステムも、別で開発しました。初めてフレームワークというもの(CakePHP)に触れてみたのですが、あまりの便利さに驚かされました。まだほんの少しかじっただけですが、機会があれば積極的に学んでいきたいところです。

進捗状況の把握(と公開)のためにダイアリーを開設してみたのですが、その当初の意志は全く空回りに終わってしまったと感じます。開発に集中していると他に気が回らず、記事を書く余裕がありませんでした。また、思考過程を文章にするのは想像以上に労力のいる作業であることも、改めて思い知らされました。ただ、未熟な点が可視化できたという意味では、いい経験になったとは思います。

それからついでに、カードヒーローへの熱も冷めました。勢いだけで書いてしまった記事が1つだけありますが、まぁ、残しておいてみます。

*1:コードのカオスさは抜きにして