2014年12月16日火曜日

2014年11月の社内発表会

11月末に行われた社内発表会の内容をお伝えします。

2014年11月29日に学習成果発表会を実施しました。
今年1年を振り返り、何を学び成長したかを、社員全員がプレゼン形式で発表しました。
 目的:
   プレゼンテーション能力の向上(書き方・見せ方・話し方)
   社員同士の技術知識の共有
 発表時間:
   10分間(質疑応答含む)
 発表内容:
   今年一年を通して学んだ事を発表。
  例)
  ・現場で学んだこと
  ・個人的に学習したこと
  ・会社に貢献したこと
   などをプレゼンテーション形式で発表。

発表内容を聞き、今年1年でたくさんのことを学んだことが見えました。
若手や新しい現場へ移動した方は、現場で行う仕事、教わったこと全てが、学習成果となりました。

一方、同じ現場に長くいて、目当たらしことを、学んでいない人でも、日々の仕事の中で、問題点、改善点を見い出し、どうすればよいかを考え改善し、結果となって現れていることがわかりました。
特に、仕事に役立てるために、本などで学んだり、個人的ににセミナーに参加したりして、スキルアップがアップし業務に役立ったといった内容は、まさに学習が成果につながったと思います。

私はマネージャーとして、プレゼンの内容を評価しましたが、
自信をもって堂々と話すメッセージ性のあるプレゼンは特によかったと思います。
自分が学習した知識を教えたい、伝えたい、共有したい、皆も学んでほしい、という強いメッセージを感じることができるプレゼンもありました。 
それは、話し方も自信に満ちており引き込まれるプレゼンでした。
少し自信が無い人は、プレゼンと言うよりは学習した成果の報告をした。という印象になってしまったのが勿体無いと思います。
たくさん勉強したのだから、次回は自信をもってプレゼンして欲しいと思います。

2014年11月6日木曜日

2014年10月の社内発表会

10月末に行われた社内発表会の内容をお伝えします。

今回は【SEのためのビジネススキル入門】の一環として、【図解術】について意見交換を行いました。

【図解術】
システム構築にあたり、文章のみで各種仕様書を作成していると、仕様の抜け漏れ、過剰な取り込みが発生しやすくなります。
それを防ぐ為、また、意志疎通をしやすくするため、各種仕様書作成時に図を用いております。

そこで、普段システム構築する際、使用する図について、

以下4つのテーマに沿って社員一人一人から意見を募り、マインドマップを作成しました。
よく使用する図はなにか
・どの局面で使用されるのか
・何のために使用されるのか
・図を作成するにあたりスキルアップするにはどうすればよいか

マインドマップは以下のようになりました。

分かりにくくて申し訳ございませんが、社員一同の認識はほぼ一致しておりました。

中堅社員以下では作成した事の無い図も存在した為、今回あげられた図がどのような場面でどのように使用されるか今後学んでいきたいと思います。

社員一同、改めて図の重要性を実感いたしました!!

2014年10月1日水曜日

2014年9月の社内発表会

9月末に行われた社内発表会の内容をお伝えします。


今回は【SEのためのビジネススキル入門】の一環として、やる気アップ術【時間管理術】を行いました。 
現場で働いている方々から実際に行っている時間管理術を紹介していただいたところ、
以下のような時間管理術が挙げられました。


・案件単位に進捗管理シート(1週間ないし1か月)を作る
・その日に終わらせなければいけない作業を把握しておく
・毎日1時間余裕を持たせ、急な問い合わせにも対応している
・1日の作業を大まかに書き出す
・午前にやるか午後やるかを決め、午前に集中してやる作業を割り当てる
・出来るものから終わらせる
・期日を決める 5分10分の作業は今やる
・期日が決まっているものは先にやっておく
・できるものは前倒しで作業を行う
・行うべき作業をリストアップし、できるときにやる
・期日が近いものからやる
・1時間単位に作業内容を決める
・忙しいときは付箋を貼り、期限を決めて行う

・3つに分かれた箱の中に、当日分、明日分、あさって分の作業を入れる


これらの時間管理術を見ると、「やる作業を予めまとめておく」という点と
「期限が近いもの、またはすぐに終わるものはすぐにやる」という点がみられます。
作業というものはやらなければどんどん溜まってしまうので、
優先するべき作業の管理と、すぐに終わらせることができるものについてはすぐにやってしまい、
作業を溜めないようにするのが時間管理術のコツだと感じました。
私もこれらの時間管理術を見習い、すぐにできること(勤務表の提出など)は
溜めずにすぐに行っていきたいと思います。

2014年9月16日火曜日

2014年8月の社内発表会

8月末に行われた社内発表会の内容をお伝えします。



今回は【SEのためのビジネススキル入門】の一環として、やる気アップ術【時間管理術】を行いました。 その中の一部【ゆるい時間管理】ご紹介いたします。



ゆるい時間管理
ITの現場では突発的な作業が日常的で予定した時間で終わらないことが多々あり、
そのたびに、作業の優先度や時間割を見直すのは大きな手間を伴い結果として長く続かないようです。
そこで考えられたのが「ゆるい時間管理術」です。


1)作業は大まかに書き出す
自分自身が抱える作業を付箋紙などに書き出し、作業リストを作る、これが時間管理の基本であり、ゆるい時間管理でも不可欠です。
「A社向け作成案件」「タスクフォース資料の作成と送付」といった具合に大まかに作業を書き出すことで、当日に急な作業が入った時でも優先度の組み替えがやりやすくなります。


2)優先度は2段階で付ける
作業を書き出した後で優先度を決めます。
優先する、優先しないの2段階に集約することにより、優先度付けに迷うことが無くなり、さらに本当に自分自身がやるべきなのかを再確認でき、他のリーダーやメンバーに、あるいは利用部門に作業を依頼するといった選択肢も生まれます。


3)作業の山積み状態を公開
作業一覧を公開することで依頼する際、依頼済みの作業よりも優先するかどうかを決めてもらいます。
公開する事で他の依頼状況を見て納期を遅らせる判断をしてくれたり、依頼する前に作業する余裕があるのかどうか確認してくれることが増えるようです。


いろいろな時間管理術があると思いますが、スケジュールを書くことが苦手な私でもこの「ゆるい時間管理」なら簡単に行うことができ、時間も数時間単位で良いので長続きしそうです。早速実践してみます。

2014年8月6日水曜日

2014年7月の社内発表会

7月末に行われた社内発表会の内容をお伝えします。


今回は、【SEのためのビジネススキル入門】の一環として、やる気アップ術とカプセルトークを行いました。

1、やる気アップ術

やる気のアップには「振り返りとセルフチェック」が重要であり、モチベーション曲線
で自身のモチベーションの変化について分析が可能です。

自分のモチベーション曲線を作成する。入社時か現在までのモチベーション曲線を
その時々のイベント(資格試験に合格・結婚などなど)とともにグラフにし変化を分析します。

また、やる気を高める法則として、「動機>負担」というのがあり、「動機:アクセル」、
「負担:ブレーキ」と読み替えることが出来ます。

やる気が出るのは動機が負担を上回ってい時です。
そのため、やる気を高めるには「動機を高めるか、負担を減らす」のが効果的となります。

自身のモチベーションの傾向を知る手段として、「やる気度セルフチェック」を各自実施
(Webで実施)し、自身の傾向いについて確認を行いました。

その他、自身の欲求タイプについても、各自、自分がどの欲求タイプなのか確認を行いました。
 ・ドライブタイプ
 ・アナライズタイプ
 ・クリエイトタイプ
 ・ボランティアタイプ

私個人の感想では、最後の欲求タイプの結果がピッタリ自分に当たっていて驚きました。
それぞれの欲求タイプにより、やる気スイッチをONにする方法(要因)が異なります。
メンバーの欲求タイプを把握し、やる気の促進要因を見つけ、個々のメンバーにあった
対策を打つことは非常に重要だと感じました。

ということで、とても勉強になりました。


2、カプセルトーク

8人程度のグループにわかれてディスカッションを行いました。
ルールは以下になります。

<ルール>
 ・順番にお題の入ったカプセルを引き、引いた人は、お題について意見を言い、全員で
  ディスカッションする。

共通の話題でジェネレーションギャップを埋めるというのが目的となり、大変盛り上がり
ました。
途中途中で若干話が脱線してしまっていましたが、様々な年代の人と共通の話題で意見
交換する場というのは、とても新鮮で有意義でした。

社内でも、仕事以外の話題でお話しする機会がほとんどないため、今後も定期的に実施できると
良いと思いました。

2014年7月23日水曜日

2014年6月の社内発表会

6月末に行われた社内発表会の内容をお伝えします。


SEのジェネレーションギャップ)

どのような職業でも、社会に出るといろいろな年代の人と関わることになります。
IT業界ももちろん例外ではないのですが、なにしろ技術の移り変わりが激しい世界です。
一般的に言われるジェネレーションギャップだけでなく、世代によって持っているスキルにも
違いがあります。
お互いの時代背景や習得している技術を知ることで、若手とベテランの相互理解を深めるきっかけになるのではないでしょうか。
今回は世代ごとのステレオタイプを元に、各世代の仕事に対しての価値観やコミュニケーションの取り方について情報を共有しました。
書籍を参考に進めましたので、詳細な内容については割愛させていただきますが
相手の状況や背景を理解することはコミュニケーションの第一歩ですね!!

うまくいかないときは冷静に相手のことを考えてみると良いコミュニケーションの方法が見えて来るのではないでしょうか?


プログラミング)

3~4人のチームにわかれて下記の課題に取り組みました。

・引数で取得した郵便番号をチェックする。
・郵便番号検索APIを用い、郵便番号に該当する住所を取得する。(取得形式:XML)
・取得したXMLを解析して、都道府県、市区町村を表示する。

作成はJavaで行いました。
私はペアプログラミングで観察する側を担当しました。
知らなかった機能や考え方についていろいろと先輩に教えていただけたので
とても勉強になりました。
一人で画面に向かうばかりでなく、誰かと一緒に同じコードに取り組むことも大切ですね。
普段はなかなかできない事なので、こういう機会を大事にしたいです。

2014年6月8日日曜日

2014年5月の社内発表会

5月末に行われた社内発表会の内容をお伝え致します。
今回は、「クレジット業務」についてです。

「そもそもクレジットの意味とは何か?」から始まり、クレジット会社の仕事やカードショッピング、キャッシング、請求や督促等、クレジット業務について勉強しました。

具体的には、以下の内容となります。
 1、クレジットの意味について
 2、クレジット会社の仕事について
 3、カードショッピングについて
 4、カードキャッシングについて
 5、銀行保証の仕組みについて
 6、返済方法や手数料の計算方法などについて
 7、審査について
 8、請求や督促について
 9、ポイントについて

イシュア・アクワイアラー・銀行保証等しらない言葉を説明していただき、とても勉強になりました。
下記に発表会での発表内容を紹介いたします。

クレジット業務)

1、クレジットの意味について
そもそも「クレジット」はどういう意味か?
クレジットを日本語に訳すと「信頼」「信用」になります。
クレジットカードを発行するということは、顧客の信用に基づき、信用を供与することを意味しています。
この信用を基に、顧客とクレジットカード会社の間に契約が結ばれ、現金を持っていなくてもカードを提示することで買い物や食事ができるようになっています。(代金は後払い)

2、クレジット会社の仕事について
クレジットカード会社はクレジットカードを発行して会員に関する業務を行うイシュア (issuer)と
加盟店に関する業務を行うアクワイアラー (acquirer) の2つに大きく分かれます。
 ●イシュア
  会員に対するクレジットカードの発行や管理を行う業務です。
  会員に発行したカードの利用状況から利用金額を請求したり、ポイントなどの各種サービスを提  供します。
 ●アクワイアラー
  クレジットカード決済ができるシステムを導入して貰えるようお店にお願いをしたり
  (加盟店開拓)、顧客がカード決済で後払いにした代金を精算し、加盟店に支払う業務です。

3、カードショッピングについて
クレジットカード会社のサービスは、大きく「ショッピング」と「キャッシング」の2つに分けられます。
 ●ショッピング
  店頭で、現金の代わりにカードで買い物する。
  クレジットカードを持っていると、あらかじめ設定された利用可能枠の範囲で買い物ができます。
  ただし、カードショッピングが可能なお店は、クレジットカード会社と契約しているお店(加盟店)
  だけです。
  クレジットカードで買い物をした場合、クレジットカード会社はその代金を顧客に代わってお店に  支払います。
  その後、顧客は利用した代金を所定の期日にクレジットカード会社に支払います。

4、カードキャッシングについて 
●キャッシング
  現金の手持ちがない時に、クレジットカード会社から現金を借りる
  クレジットカードを持っていると、あらかじめ設定されたカードの利用可能枠の範囲でお金を借り  ることができます。
  尚、貸金業法の中に総量規制と呼ばれる制度があり、年収の三分の一を超える融資は法律で  禁止されています。
  ただし、総量規制の対象となるのは、消費者金融やクレジットカード会社等の貸金業者からの   借入のみで、銀行からの融資(カードローン含む)は総量規制の対象外になります。

5、銀行保証の仕組みについて
  銀行は融資を実行する際、貸し倒れリスクを軽減するために、基本的に担保や連帯保証人を   必須としています。
  また、住宅ローンの場合などは、金額が大きいことや返済期間がとても長いため、連帯保証人  の代わりに保証会社の保証を必須条件としていることがほとんどです。
  銀行が顧客に融資を実行する際に、クレジットカード会社(保証会社)がその債務の連帯保証を  行うことを銀行保証と呼びます。
  クレジットカード会社は顧客の連帯保証のみを行い、顧客への融資、請求、回収等はすべて銀  行で行います。
  銀行から代位弁済(顧客から回収できないので保証人であるクレジットカード会社に保証しても  らう)の請求があった場合、クレジットカード会社は顧客の残金を一括して銀行に立替払いしま 
  す。そして、クレジットカード会社は顧客に対して、立替金の一括請求を行います。

6、返済方法や手数料の計算方法などについて
クレジットにはいくつかの支払方式があり、利用時に選択することができます。
 ①翌月一括(1回)払い
  商品等を購入した翌月に一括して支払う方式で、一般に手数料は掛かりません。
 ②ボーナス一括(1回)払い
  商品等を購入した翌ボーナス時期に一括して支払う方式で、一般に手数料は掛かりません。
  支払う時期は、通常、夏は7月か8月、冬は12月か1月です。
 ③分割払い
  商品等の金額を考慮して、支払回数や月々の支払額を決めて支払っていく方式で、利用金額
  や支払回数に応じた手数料が掛かります。
 ④ボーナス併用払い
  月々の支払いに加え、ボーナス時にはボーナス支払額を加算して支払う方式です。
 ⑤リボルビング払い
  あらかじめ決めておいた金額(一定額または残高に応じた一定率)を支払っていく方式で、月々  の支払額に加えて手数料が掛かります。
  ※月々の支払額をあらかじめ決める「定額方式」、残高の一定割合を月々の支払額とする「定    率方式」、残高に応じて月々の支払額が決まる「残高スライド定額方式」があります。

住宅ローンの代表的な返済方法として、「元利均等返済」と「元金均等返済」の2種類あります。
 ●元利均等返済
  元金と利息を足した金額を毎月同じ額になるように均等にして返済する方法です。
  毎月の返済金額が一定のため、返済計画が立て易いというメリットがある反面、
  当初の返済が利息部分に充てられているため、元金が減りにくく、「元金均等返済」に比べる
  と、最終的に支払う利息の合計額が多くなります。
 ●元金均等返済
  元金をまず毎月均等にして、利息は元金の残額に応じて返済する方法です。

金利手数料の計算方法には「残債方式」と「アドオン方式」があります。
 ●残債方式
  借り入れたお金を返済していくと、残高が減っていきます。この減っていく残高に毎回金利をか  けて金利手数料を求める方式。また、その残債方式で使われる金利が実質年率です。
 ●アドオン方式
  当初借り入れた元金が借入期間中に減らないと仮定して金利手数料を計算する方式。
  最初の元本に金利をかけて金利手数料を求め、元本+金利手数料を支払い回数で割って返済
  します。
  キャッシングや住宅ローンでは残債方式、ショッピングクレジットではアドオン方式ががよく用い  られています。

7、審査について
クレジットカード会社は誰にでもカードを発行している訳ではありません。
きちんとした信用調査を行い、顧客の支払い能力や過去のクレジット事故等がないことを確認してからクレジットカードを発行しています。
審査基準はクレジットカード会社によって異なりますが、主に3Cと呼ばれる以下の基準で審査を行っています。
 ①Capacity (資力)
  継続して返済を続けるために一定の収入が定期的にあるかといった「返済能力」を見るもので  す。この返済能力が、クレジットカードの審査において最も重要視されています。
 ②Character (性格)
  決められた日にきちんと返済できるかといったお金に対するまじめさと信頼性(性格)を見るも
  のです。
 ③Capital (資産)
  負債の担保となる資産(不動産、車、有価証券、貯蓄など)があるのかを見るものです。
  また、クレジットカードの申し込みがあった場合、クレジットカード会社は他社での利用状況や過
  去の事故情報(代金の滞納、自己破産など)を調査するために、信用情報機関を利用します。
 
<信用機関情報>
  ①シー・アイ・シー (CREDIT INFORMATION CENTER CORP) <略称:CIC>
   主にクレジットカード会社、信販会社、リース会社、消費者金融、携帯電話会社などが加盟し
   ている。
  ②日本信用情報機構 <略称:JICC>
   主に消費者金融、クレジット会社、リース会社、保証会社などが加盟している。
  ③全国銀行個人信用情報センター <略称:KSC>
   主に銀行、信用金庫、信用組合、農協、労金などが加盟している。

   個人の信用情報は国が指定する上記の信用情報機関によって管理されていて、それぞれの
   間で信用情報の共有を行っています。

8、請求や督促について
クレジットカードは利用する会社によって、毎月の締め日や引き落とし日が異なっています。
 ●締日
  クレジットカード会社がカード会員への請求金額を確定するための締め切り日
 ●引き落とし日
  クレジットカードを使った代金が引き落とされる日
  例えば、締め日が15日で、引き落とし日が翌月10日の場合、これは前月の16日から今月の15
  日までにカードを使った代金が、翌月の10日に引き落とされることを意味します。

何らかの事情で、クレジットカードの支払いを怠り、遅延を発生させてしまった場合、クレジットカード会社は以下の様な段階を踏んで督促を行います。
 ①期限を過ぎても入金しなかった場合再引き落としの「案内」書が届きます。
 ②それでも入金しなかった場合、次は電話による支払いの「警告」があります。
 ③さらに入金しなかった場合、「督促状」が届きます。
  督促状が発行されてから何日か経過しても入金しなかった場合、残金を一括して返済する義務
  を負うことになります。(分割払いでも分割返済はできない)
 ④督促状を受け取っても入金しなかった場合、「催告書」が送付され、これ以降クレジットカード会
  社は、督促状を発行していればいつでも強制執行できることになり、給料をはじめとした財産の
  差し押さえも強制的に実行することが可能となります。

9、ポイントについて
クレジットカードのポイント制度とはクレジットカード会社が顧客にクレジットカードを積極的に使用して貰うため、利用した金額に応じて与えてくれる報酬(ポイント)のことです。
このポイントの還元により、ギフト券やさまざまな商品が貰えたり、現金の代わりに使って買い物ができます。
クレジットカードを利用するだけでポイントが貰えるのは、クレジットカード会社はお店から加盟店手数料を徴収していて、そのうちの一部をポイントとして還元しているからです。

クレジットカード会社は、自社のクレジットカードを利用してくれる顧客が増えることで、加盟店手数料による収入(利益)が増えるといった好循環を生み出すため、ポイント制度をより魅力的にするための特典を付けたり、キャンペーンを行っています。

私自身、現金主義的なところもあり、カードでの買い物はなかなかしないのですが、
ポイント還元を考えるとカードを使って得する買い物をするのも良いな、と思いました。

2014年5月7日水曜日

2014年4月の社内発表会

こんにちは、4月末に行われた社内発表会の内容をお伝えします。
今回は写真も用意する予定でしたが、写真を撮り忘れてしまいました…申し訳ありません。

メンタルヘルス・セルフケア)

2007年の厚生労働省の発表によると、労働者の健康状況について調査した結果、
「仕事や職業生活に強い不安、悩み、ストレスがある」と答えたのは全体の58%となったそうです。
この為、自らの健康を保持増進するための取り組みが望まれています。

ストレスが溜まると仕事の能率低下、ミスやロスの低下、些細なことで腹を立ててしまうなどの、業務自体にも影響が出てしまい、やがてうつ病やアルコール依存など、私生活にも影響が出てしまう事もあります。
自己の健康管理において、健康診断を受け、医師の指示に従い、自分からも改善に取り組む事は義務となります。

ストレスへの対処法として睡眠や食事が挙げられます。
とはいえ、ただ寝て食べてればいいというわけではありません。
睡眠時間に関して、厚生労働省は何時間寝たかではなく、日中しっかり目覚めて過ごせているかを目安にすべきとしております。
極端な話、睡眠時間3時間程度でもキチンと仕事が行えていれば問題なく、逆にしっかり睡眠をとっていても日中に眠くなってしまうのでは十分ではない、という事です。自分にとって適切な生活リズムを取ることが重要となります。
更に運動でストレス解消し、深く質の良い睡眠を取ると効果的です。
食事はバランス良く規則的にとるように、特にビタミンC、タンパク質、カルシウムを十分にとると効果的です。

また、身体を緊張をほぐすさせる事で精神の緊張もほぐす、という方法もあります。
慌てた時に深呼吸して落ち着かせる、という事がありますが、それもこれと同じものです。
今回の発表会では、職場でもできる方法として、リラックスするための呼吸法や、筋肉の緊張をほぐすための方法として「漸進的筋弛緩法」というものを全員で行いました。
●呼吸法
 ①お腹に両手を当て、ゆっくりと息を吐く
 ②背筋を伸ばし、お腹を膨らませるように鼻から息を吸う
 ③ゆっくりとお腹をへこませるように息を吐く
 ④②~③を繰り返す

 まず3分間続けられる事を目標として、少しずつ長くできるように意識してゆくとよいそうです。
●漸進的筋弛緩法
 職場でも簡単にできる、腕と肩、2つをリラックスさせる方法を紹介されました。
・腕
 ①力を入れて両手を前に伸ばしてゆき、こぶしを握り前腕部を力むようにする
 ②力を入れたまま肘から腕を曲げ、上腕に力を入れる
 ③力を入れたまま再び腕を前に伸ばしてゆき、手指もしっかり伸ばして力を入れた後で、両腕を 脱力してゆく
 ④リラックスする。
・肩
 ①肩をすぼめ、約10秒間肩に力を入れたままにする
 ②その後ストンと肩を落とし、脱力する
 ③リラックスする
実際にやってみた感想ですが、肩コリが少し軽くなったような、少し気持ちいい気分になれました。
デスクワークで肩も強張りやすいですし、みなさんもやってみてはいかがでしょうか?


ソフトウェア開発)

課題は、「ソフトウェア開発ってどんな仕事か?」です。
皆さんは答える事は出来ますか?
資料(画面遷移)を基に、参加者全員が改善案を考え発表を行いました。
発表内容は、全員が作る事(画面遷移の改善)を前提にした提案でした。(※発表内容参照)

でもソフトウェア開発って作る事だけじゃないですよね。お客様が効率よく仕事をできる環境を提案する事であって、その一つの手段にソフトウェア開発(作る事)があります。

今回の反省は、開発者の弱点でもある仕組み重視の考え方だと思います。

画面遷移を見つめるより運用状況をきちんと把握する為のコミュニケーション力や分析力が開発者にも必要です。

当社も全社員がお客様にとって最善案を提供できるよう、月1回の勉強会を有意義な場としてスキルアップに取り組みたいと思います。
 
※発表内容
ちなみに提案は、以下のような内容でした。
・画面遷移数が多いので、確認画面を無くしてしまう
・完了画面を無くし、登録画面や一覧画面にすぐ戻る。その際に完了メッセージを表示する。
・各種処理完了画面の後、メニューではなく直接登録・更新・削除画面へ飛べるようにする
・登録画面をEXCEL風の一覧形式にして、複数の情報を一括登録出来るようにする。
・バッチ処理による更新機能を追加して、複数のデータをまとめて読み込み・更新できるようにする。
・登録実行画面にCSVファイル読み込み機能を追加して、画面上でファイルのデータを参照・読み込みできるようにする。
・更新と削除は、一覧画面を同じ画面にまとめてしまう
・更新・削除は対象をチェックボックスで選択するようにして、一括で対応できるようにしてしまう。
Ajaxを用いて、画面そのものを全く新しくしてしまう(例:画面上部に一覧検索機能、下部に一覧表示欄)

また、工数や予算に余裕がある場合と無い場合で複数の案を提示する方も多くみられました。
(余裕があるなら画面を一新、無いなら既存の画面を少し修正して対応など)

2014年3月28日金曜日

2014年2月の社内発表会

2014年2月から社内の発表会をブログに載せることになりました。
本当は2014年1月から実施する予定でしたが、
担当がインフルエンザにかかってしまったので1か月遅れの開始となりました。

今回は、改めてオブジェクト指向とSQLを考えてみました。


オブジェクト指向)

オブジェクト指向の考え方は、私の知る限り25年前から耳にします。その頃は「オブジェクト指向とC++」なんて書籍が本屋さんに並んでいました。その中で私の目を引いたのは「オブジェクト指向でC言語の限界」(?)だったかな。オブジェクト指向でC言語の実装方法が記載してありとても分かりやすかった。

オブジェクト指向を実現する手段として、C++やJavaはオブジェクト指向を実現しやすい言語だけど、その言語を使ったからと言って全てがオブジェクト指向かと言うと?ですよね。

今回はオブジェクト指向の考え方から始めました。
プログラミングを少しかじったことがある人は、プログラムを見せると直ぐロジックに食いつきます。でもロジックを追ったところで何の処理かなんてわかりません。本来はどんな入力情報で、どんな領域構造で管理しているのか、どんな出力情報があるのか。それが分かれば処理は自然と見えてきます。要は処理というのは管理情報が全てです。

オブジェクト指向は管理情報を中心としたデータ指向です。
1つのオブジェクトに対し必要な属性(管理情報)を持たせることで、管理自体をオブジェクトに任せる(カプセル化)考え方です。その管理情報を取り出す手段としてメソッド(メッセージ)を考えます。オブジェクト指向はどんな言語でも実現できる考え方です。


ちょっと昔を思い出し、C言語で簡単なオブジェクト指向プログラムを作ってみました。やっぱりC言語好きだな、ポインタが楽しい。

・String.h(ヘッダーファイル)

struct String {
        char *string;
        int  (*Equals)(struct String *, char *);
        int  (*Length)(struct String *);
};

struct String *CreateString(char *);


・String.c(クラスソース)

#include 
#include 
#include 
#include "String.h"

int Equals(struct String *string, char *compare) {
        return strcomp(string->string, compare);
}

int Length(struct String *string) {
        return strlen(string->string);
}

struct String *CreateString(char *string) {
        struct String *s = malloc(sizeof(struct String));
        s->string = malloc(strlen(string)+1);
        strcpy(s->string, string);
        s->Equals = Equals;
        s->Length = Length;
}


・main.c

#include 
#include 
#include "String.h"

int main(int argc, char **argv) {

        struct String *abcObj = CreateString("abc");
        int length_abc = abcObj->Length(abcObj);
        if (abcObj->Equals(abcObj, "xyz")) {
        }

        struct String *defObj = CreateString("def");
        int length_def = defObj->Length(defObj);
        if (defObj->Equals(defObj, "xyz")) {
        }

        exit(0);
}


SQL)

SQLは時間がなかったので少し駆け足でした。SQLってDBへの問い合わせですがどのように動作しているか?から始めました。
一般的にRDBはクライアント/サーバ構成なのでSQLを発行するクライアントはサーバと通信を行い、実際のSQLはサーバで実行されます。クライアントとサーバの通信はSQLのオーバヘッドとなるので1度のSQLで結果を求めるために長文のSQLを組んだりします。
実際はクライアントは自分だけでなく他にも動作しているので、これではサーバに負担を押し付けてることになりますよね。
サーバのパフォーマンスチューニングで実行計画を元にINDEXを張ったり領域を増やしたりしますが、クライアント処理でやった方が速い場合があります。
そのためにアルゴリズムやマッチング、キーブレイク処理などの基本ロジックが存在します。


やはり文章だけだと何だかなぁですね。
次回は発表会の写真で雰囲気を伝えられればと思います。