EDIX 2019 東京展に出展しました

時間が空いてしまいましたが、私たち日本データパシフィックは第10回 教育ITソリューションEXPO EDIX出展していました。

ご来場いただいた皆様、ありがとうございました。直接お会いする機会が持てて嬉しかったです。

出展社は430社、来場者数は30000名程と、例年通り大盛況だったようです。お話させていただいた方も様々で、大学・高校、専門学校や企業の、先生もいればシステム導入を検討中の立場の人もいました。
WebClassはクラウド環境によるサービス提供にも力を入れていて、現在のユーザー様は大学や高専が多いですが、例えば企業の研修等にも社内教育の基盤としてご利用いただけたらと、そういう話もしました。
「データパシフィックさんの教材の評判が良くて、もっと種類を増やそうと考えている」と言われ、資料を持ち帰って頂いたお客様もいました。こういった声は本当に励みになります。ますますご愛顧いただけるよう精進していきます。

今後も様々な声を伺い、これからの教育にフィットした提案をしていきたいと思います。

個人的な反省点としては、英語でも弊社製品をアピールすることができるようになることです... 😂

[学習記録ビューア] 組織管理権限を引き渡すことできるようになります

今日は一部の人に刺さるであろう新機能の紹介をします。学習記録ビューアの組織管理権限を、学習記録ビューア システム管理者から他ユーザーに引き渡すことできるようになりました!これまではシステム管理者が組織を一元管理するしかなかったのですが、一部の組織の管理をその組織専任の監督に任せてしまうようなことが可能です。

運用例

教職過程コースを履修している学生に、活動記録と自己評価をさせる、教職履修カルテ プラグインを利用している場合。

管理者は上位組織(上図の「教職履修カルテ」)で全体を管理しています。指導教員が各学年ごとの組織(上図の「1年生」等)で、担当する学年の学生にアドバイスしています。こういう場合、指導教員に、担当する学年の学生の追加・削除を行って欲しいことはままあると思います。

そこで、各学年の指導教員に、担当する組織で、今回実装された「組織管理」権限を付与します。

すると、「組織管理」権限を付与された指導教員は、担当する組織で、メンバーの変更や権限設定を行うことができるようになります。

このように、現場の人に権限を渡して一部の作業を任せてしまうことで、学習記録ビューア システム管理者が全てを管理する必要がなくなり、お互いに仕事がやりやすくなるかもしれません。ぜひ有効に活用してみてください。

「組織管理」権限は、学習記録ビューア v4.2 でご提供予定です。後ほどマニュアルで詳しい使用方法をご案内します。

ソフトウェア設計 勉強の手引き

この記事は弊社の後輩プログラマーを読者と想定して書いています。しかし一般的な内容でもあると思いますのでここに公開します。

なぜソフトウェア設計の勉強をしなければならないのか?

プロのプログラマーは、堅牢で、なおかつ要望を即座に実現するソフトウェアを構築するために、「プログラムの変更が容易である」状態を維持しなければならない。もう何十年も先達プログラマー達はそのためのノウハウを蓄積し、原理原則レベルまで抽象化して落とし込んでいる。これを学び体得することが、プロのプログラマーには必要である。

どう勉強したらいいか?

まず、設計スキルを完璧に身につけた!と言い切れる人は多分いない。プログラマーは皆、常に勉強し続けるのみである。設計スキルを向上させるための基本的な方法は、他人のコードや本で良い設計のエッセンスをインプットし、自分の書くコードにアウトプットする、これを繰り返すことである。
インプットの方法だが、まずは他人のコードを読む習慣があると良い。会社やサークルで、メンバーの書いたコードを読み、その設計の良し悪しについて話しあってみる。公開されているOSSはネット上に無数にあるので、興味があるプロジェクトを見つけてコードを読んでみる。できればOSSにコミットするコントリビュータを目指すといい。
設計に関する原理原則、体系だった情報を得るには、本を読むことになる。以下はどの資料をどういう順番で読むといいかを例示する。この通りに読まなくても、自分に合う本をピックアップして良いし、興味のあるところから取り組んでも良い。

レベル1. 何はともあれ読むべし

レベル2. 設計の原理原則を知る

設計の原理原則はプログラマーの教養であり、共通言語である。知らないと他の本が読みづらい。

レベル3. コードのテスト手法について知る

コードが正しく動いているかチェックするには?プログラマーは皆テストを「書いている」。それに伴い、テストをしやすいコードが良いコード、という指標が存在する。テストを書くとはどういうことか知らないといけない。

  • テスト駆動開発
    • テストファースト(コードより先にテストを書く)の手法をテスト駆動開発(TDD)と呼ぶ。テストしやすいコードを書きたいなら、最初にテストを書いてその通りに動作するコードを書けばいいじゃん、という考え方。(本当はもっと奥深い
    • テストを書くメリットを知るには、何より体感したほうが手っ取り早いと思うので、ステップバイステップで実際にテストを書くこの本を勧める。なによりテスト駆動開発の原典だし。
  • 自分の得意な言語、Webフレームワークで、テストを書く方法を調べてみる。
    • 例えばPHPなら、PHPの初心者向けの本で、テストについて記述のある本を探す。PHPUnitというライブラリを使うのが定番。
    • 例えばLaravel(PHPのWebフレームワーク)を使ったことがあるなら、Laravelのマニュアルや本にはLaravelでのテストの書き方を説明した章が必ずある。
  • 日本におけるテスト駆動開発の第一人者、@t_wada さんによる解説資料を読み漁る。

レベル4. オブジェクト指向をさらに深く知る

これ以降は、目的に応じて細分化していく。

既存の汚いコードと戦う

コードは書いたら書きっぱなしじゃない、常に改善を繰り返していくものだ。設計についてもそうだ。複雑で手を出しにくい設計に修正を加えないといけない時、どう立ち向かうか?

オブジェクトを改めて捉え直す:ドメイン駆動設計

関数型プログラミング

普段使っている言語とは異なる言語思想と文法を持つプログラミング言語を学ぶことで、その考え方の良い点を設計手法に反映できる。特に関数型プログラミングと呼ばれる思想は、最近勃興してきたプログラミング言語の基礎(の一部)として採用されている。既存のPHPのようなプログラミング言語でも、関数型プログラミングのエッセンスを活かした設計手法が存在する。

  • Elmで関数型プログラミングを学ぶ
    • ElmはWebアプリケーションを作るための関数型プログラミング可能な言語。
    • 関数型プログラミングに必要な厳選された文法・機能を備えているので、関数型プログラミングの学習のとっかかりとして使える。
  • Haskellで関数型プログラミングを学ぶ

とりあえずこんなところ。

最後に

この記事を書いている人ももちろん勉強の道半ばです。自分が書くコードの設計についてレビューでガンガン指摘してもらったり、話し合ったりしたいです。オススメの資料があれば教えてください。宜しくお願いします。

マニュアルサイトを作ります。

WebClassの マニュアルサイト を作ることにしました。WebClassの中でも新機能開発が盛んな学習記録ビューアの解説を中心に、内容を充実させている真っ最中です。
作成の目的は以下のようなものです。

  • Google検索から使い方を調べられるようにしたい
  • Webの特性をフルに活かした効果的なマニュアルにしたい
  • ユーザだけでなく社内でも活用できる
  • アクセス履歴から製品の改善に役立つ情報を見つける

それぞれ説明していきます。

Google検索から使い方を調べられるようにしたい

これまでWebClassのマニュアルは主にPDFで用意し、WebClassにログインしてダウンロードしていただく形で提供してきました。現代において、アプリやサービスについて何か情報を得たい時は、とりあえずGoogle等の検索サイトで検索する事が多いのではないでしょうか。WebClassのユーザーも例外ではなかったかと思います。実際にWebClassの情報を検索すると、ヘビーユーザーのかたが使い方を分かりやくすまとめたサイトが見つかったりします(ありがとうございます!😊 )。私たちもマニュアルサイトを通して、必要な情報を必要な時に見つけることができるような状況を作ります。

Webの特性をフルに活かした効果的なマニュアルにしたい

前述したように、これまではマニュアルをPDFで配布してきました。これをWebサイト化することで、段違いの表現力を期待できます。分かりやすいように情報をページに分割したり、リンクで関連する情報を相互に結びつけることができます。動画やアニメーションGIFも強力な武器になるでしょう。

ユーザーだけでなく社内でも活用できる

社内で情報共有するための資料はありますが、マニュアルサイトのようにユーザーも含めた多数の人が参照する状況にすることで、より情報の鮮度を保つ原動力になります。ユーザがマニュアルサイトを見ることで必要な情報をが得られる状況になれば、サポートコスト低減にも繋がります。

アクセス履歴から製品の改善に役立つ情報を見つける

マニュアルサイトにアクセスしてきたユーザーは、WebClassの画面だけでは分からなかった情報を探しにやってきています。アクセスが多いページや検索ワードから、WebClsasで迷いがちなポイントを知り、WebClassの改善に繋げていきます。

今後

マニュアルサイトを構築したばかりで、目的の達成にはまだ時間がかかりそうです。徐々にではありますが、内容を充実させていき、即時性の高いサポートを目指していきます。

余談ですが、マニュアルサイトを公開したのと同じ頃、ヘルプサイトの作り方 なんて本が出版されていました!今読んでいますが、すぐに活かせそうです。