スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

C#で仕事してましたが退職しました











C#で仕事してましたが退職しました


 諸事情で4月から2ヶ月間の休職をしていましたが、この会社 (以下、N社と記述します) では2ヶ月を超える休職は許されていないため、 先ほど正式に退職をしてきました。

N社は僕が2年制の専門学校を卒業し、新卒で入社し丁度2年間務めた初めての入社先でした。


 諸事情とは抑うつ状態と呼ばれるもので、まず一番語りたいこととは別なので別の記事に書くことにします。 (現在治療中)


 この記事は備考録がてら、僕の職歴やポエムを書いたものです。





  1. N社での主な職務




  1. 休職に向けた引き継ぎ作業

  2. 次の入社に向けた想い




新卒だけど社内インフラ作るマン


 さて僕の初めてのお仕事ですが、社内のインフラ環境をコスト削減のために 自前でホスティングするようにしよう…というものでした。


 例えば、以前はメールサーバを外部のSaasで運用していたそうですが、 今回レンタルサーバ上にPOP3,IMAP,SMTPサーバを乗せる形でリプレースしました。 ( 結果から言うとメールサーバについては失敗しました…すまぬ…すまぬ… )



  • Saasからレンタルサーバ上での運用にリプレース



  1. メールサーバ

  2. N社ホームページ(Apache httpd), SSL対応



  • 新規導入



  1. 社内SNS (Apache httpd -- VirtualHost)

  2. DNSサーバ(セカンダリ)


またプライマリDNSサーバはお名前.comを使用しました。


 今更だけど、新卒に任せていい仕事だったんでしょうか? これ。

いい機会を僕にくれるために、機会を提供してくださったのだと思います。


 その後、僕は受託系案件の唯一のインフラ管理者になるのでした。


結局Nginx触れてない!!


C#バリバリ食べるマン(受託案件,業務アプリ)


 社内インフラのお仕事がある程度落ち着きましたので、受託開発事業がスタートしました。


 見出しの通りですが主にC#を使っていわゆる業務アプリケーションの開発を2件ほど行いました。



  1. WinForms + MySQL (工事会社の材料在庫,赤字黒字の計算,顧客管理用ソフト)

  2. WPF + MS SQL Server 2014 (工事状況,子会社と顧客の管理用ソフト)




 僕はここでC#のよさに完全に目覚めたので、今まではOCJPIIを取るほどJavaに頼っていましたが 最近はJavaを使うならC#というレベルです。




こちらの2件をスパイラル開発しながら、顧客環境に対して更新のその都度納品していました。


 ここで人によく驚かれるのが開発体制ですが、開発チームは以下のような構成でした。



  • プログラマ(僕) -- 1名

  • テスター 兼 デバッガ (新入社員の誰かが時期によって割り当てられ、よく入れ替わる) -- 1名

  • SE (顧客要件のまとめ役) -- 1名


 PMはいません。


 まず'WinForms + MySQL'の構成で作ったものがN社の初受託案件でしたので、開発体制が整っていません。

なので新卒な僕でしたが必死こいてなんとか現状で出来る開発環境の整備を行いました。


開発チームの開発環境の整備(Redmineなどのチームへの導入)


Redmine導入


 開発初期にはテスターさんさえいませんでしたがそれはさておき。

最低限、PGとテスターさんのやり取りは空中で行うよりもプロジェクト管理ツールを使ったほうがいいだろうと思ったので Redmineをクラウドサーバに導入しました。


Redmineは以下の用途で使用しました。



  • 僕がチケットとしてテストして欲しい内容を発行し、(OK|NG)判定をしてもらう

  • テスターさんがデバッグして見つけたバグをチケットとして発行し、僕がそれを見てプログラムをFixする


 このRedmineさんは本当によくて、僕が退職する最後まで僕を支えてくれました。

ありがとう…ありがとう…。


gitbucket導入


 開発案件にはVCSが必須です。

ですのでgitを採用しているgitbucketを導入しました。


 jarを起動するだけでも十分すぎるどころか、 いつも僕が使用しているGitHubと同じレベルで使えるすごいものです。

(Pull Requestも使えます)


 もしgitサーバを採用したいどなたかがいれば、GitLabと比べてこちらの採用も考えてみてはいかがでしょうか。



  • 1つ目の案件では1人でgitgitしてました

  • 2つ目の案件ではUI部分の半分以上をテスターさんが担当してくれたので(!?)、UI部分はGitHubフローで開発しました




 その他Slackなどの導入も考えましたが、要員が全然いないし、やめました。

CIも導入したかったですが、テストを書く暇がなく、またテストの利点を上長に説明しきれず断念。


他の受託案件用の色々を導入するマン


 さて、僕が入社してから1年後くらいでしょうか、本社に新しい方が未経験既卒で入ってきました。

受託案件要員とのこと。 おおっ! と思いましたが、開発案件要員ではなかったようです…。


 その方はデザイナなので、N社HPのリファインやWebサイト作成案件を担当していました。

その方の担当案件用にWordPressを建てて欲しいと頼まれることがとてもよくあったので、 僕は開発の傍らでWordPressめっちゃ建てるマンを担当していました。



  1. (その案件用の)レンタルサーバにhttpdを導入する

  2. httpdにWordPressを導入する



  • MySQLデーモンの導入

  • 初期設定



  1. 導入したWordPressをVirtualHostとして登録したりしなかったり




休職に向けた引き継ぎ作業


 結局これが僕の最後の仕事になりました。


 実は上に書いた僕の担当してきた全てのプロジェクトは、 要件定義書も受け入れテストも、操作ドキュメントもプロジェクト仕様書的なものもありませんでした。

( DB定義書は僕の脳内では管理しきれないので、個人的に書いてた )


 操作ドキュメントについては「作ろう!」という動きがあったのですが、PMが不在のためいつの間にか潰れていました。

(操作ドキュメントを作ってもバージョンが上がるとあっさり仕様が変えられるため、 操作ドキュメントを更新する要員がいないと追随できない故、潰れた)


 そのまま僕がフェードアウトしていっては全て崩れるので、新規にプロジェクトの仕様書を作成することになりました。



  • 超ツライ

  • 過去の作業を洗い出すような作業ツライ

  • 何かを作る作業がしたい


 その際の使用ツールは以下



  • 画面遷移図はMS OfficeのPowerPoint

  • CRUD図はMS OfficeのExcel

  • それ以外はMarkdownでgitbook


 上記の選択は「速さ優先」で選びました。

図的なものに対してPowerPointは超優秀で、文書的なもの対してはMakdownが超優秀です。 マトリクス的なものを作りたいのならExcel方眼紙が優秀ですね。

そしてMarkdownをドキュメント用にまとめるためにGitBookを使いました。




 かつてGitBookでこんなものを作ったのですが、超いいですよ。

Haskellでわかる群論の代数的構造


そうです、gitbookは本来技術書を書いたりするものですが、ドキュメント作成用にも使えるのです。






最後


 N社に入社し、色々本社環境(受託案件に対する環境)が整備されていなかったり、 よくわからないことを言われて傷ついたりすることは多くありましたが

得たものは大きいです。…C#のレベルが上がったとか、実際に色々できた…とか。


 強いて言うとすれば、僕が復職せずに退職を決めた理由は

「N社には職業エンジニアしかいなかったから」

でした。


このような環境は、趣味もプログラミングな僕にはあまりにも過酷でした。


僕らN社本社の従業員はほぼ毎日定時帰り、休出も1年に1~2日あるくらいでした。 超いい環境だったと思います。


でも、僕にとって最近の技術動向や好きな言語, 熱意の語り合いのできない環境は… 仲間が全くいないと錯覚してしまうには十分なものでした。 (失礼な物言いです、すみません)


 願わくば、次の勤め先では「仲間」が欲しいです。 残業が必要になったりしても、休出が必要になったりしても…仲間と一緒にそれすら楽しめるような… そんな会社に勤めたいです。




 さて、締りのないものになってしまいましたが、この退職記事は以上です。


 一応…ですが、こんな僕に連絡をいただける奇特な社がいた時のために僕のプロフィール兼連絡先を載せておきます。

その時は…ぜひ挨拶させてください。



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。


スポンサーサイト

HaskellでTwitterにTweetする

HaskellでTwitterにTweetする



About




  • 成果物

  • - hs-gorira(GitHub)のcommit 8a2a7bddb33303dd8b4aa5adb4dc7f7711ac47bd
    - あいやゴリラ(Twitter)




    • 参考URL

    • - HaskellでTwitterにpostする-yunomuのブログ
      - HaskellでOAuth-EAGLE雑記
      - Haskellのコード150行で,Twitterに投稿するだけのクライアントを作ったよ-プログラムモグモグ
      - GEToauth/authorize




      • Haskellの超便利なやつ

      • - Stackage
        - Hoogleみたいに型での検索とかできる
        - なぜかHoogleで各hackageの関数が検索できなかったのでこちらを使用した




        Detail



         成果物のコードのベースつまり大部分はyunomu氏のモノです、感謝 :P




        • したこと

        • - コードを少し整理した ( 少し )
          - 動かなくなっていたところを直した
          - Twitter API 1.1用のコードにした ( 少しの書き換え )
          - Readインスタンスの型の値を外部ファイルから読み込んでみた ( ちゅーんさんの教え、Thanks :P )
          - Conduitがどのようなものなのかを少し勉強した ( 少し )
          - 美しい型の海を泳ぐ ( 綺麗 ( モナドトランスファーわかってません ) )
          - Conduitの($$+-)関数を探し回っていた (Source型とResumableSource型の問題)
          - すごい人が「モナドトランスファーはliftIOするとなんかIOが動く」って言ってたの、本当だ…って思った



           面白かった話の一つとして、設定を外部ファイルに持つときに僕はyamlを使おうとしていたのだけど、

          ちゅーんさんが「Haskellで読み込みたい設定値がReadインスタンスの型の値なら、read(とreadFile)だけで読み込める」(要☆約)

          って言ってたから「確かに!!」ってなったというのがありました。
          すごいです。 しゅごいい。



          こんなん。




          readFooSetting :: IO SomeType
          readFooSetting = do
          foo <- read <$> readFile "path/to/config_file"
          return foo


           設定値を1つのファイルにまとめなくていいケースであれば、yamlやjsonすらいらないね!!
          すごい!!




          ほげ



           そういえばyunomu氏のブログ記事にsignOAuth関数の型にMonadUnsafeIOというのがあったけれど、
          今のバージョンだとちゃんとUnsafeじゃなくなってたのでよかった。(大丈夫)



よさがぴょんぴょんするんじゃあ in VimConf 2015

よさがぴょんぴょんするんじゃあ〜 in VimConf2015


 VimConf2015に行ってきました。 VimConf2015 is koko .


今日の皆様の発表資料まとめ


Vimのgitへの移行について


koron氏。
 今年にVimがいかにしてgitへ移行したかの内部事情を聞けた。
スライドについては僕もまだ見てないんです。
なんで会場にいたのにスライドを見ていないのかって?
諸事情によりスライドが写せなくなったものの、 koron氏がトークのみで発表を行ったから…。
 常識的に考えてすごすぎる…。


deoplete-the-dark-powered-auto-completion-plugin-for-neovim


Shougoさん。
 またの名を暗黒美夢王。
スライド中でEnglish nameが発表された。
 僕もNeoVim + deopleteを使わせていただいているのだけど、
こんなにすごかったんだ…。


Introduction to OmniSharp.vim


thincaさん。
 OmniSharp.vimを使えば、VimでVisualStudioっぽい機能をいいとこ取りできるよ、というもの。
 普段からC# + Vimで開発をしている身としては、すごくありがたい発表だった。
今度やってみよう。
 …といういい感じに発表が架橋に入った時、僕は見てしまった。 thincaさんがVimに:ShowTimeStartと打つのを…。
 なんでこの方、Vimでスライド発表してるん!?!? アイエエエエ!?!?


Change the World


lambdalisue氏。
 vim-gitaの良さの高さ強い。
発表力が高すぎて、完全にかっこよかった。
また内容も強く、vim-gitaの魅力むんむんであり、僕のVimにもすごくすぐ入れた。
 「Very benri」という強い便利ワードが生まれた。
さあ皆さんもこの言葉をどんどん使っていきましょう。 「Very benri!!」


Vim + Clojure


Ujihisa氏。
 Ujihisa氏の発表も完全に感極まっており、強さが高まっていた。
実際すごい。
 この発表中にneoclojureのLast updatedを(Ujihisa氏が)確認したところ、 Last updatedが22秒前であり、かなり活発に活動していることが大変わかった。
直前に、Ujihisa氏がおもむろにTerminalを開き、git pushというコマンドを打っていたのは
多分見間違えだよ。


私はどのようにVim scriptを書くか?


rbtnnさん。
 Vim script書きたい人向けの、すごく丁寧な入門資料。
是非参考にしてもらいたい。


vim-on-browser


Linda_ppさん ( rhysdさん ) 。
 React.jsによるreact-vimjsのやばさ体験。
ブラウザ上でVimが動くよ」 (制限はある)
ブラウザ上でVimプラグインの体験版を提供できるよ
という話。
 犬さん強い。


Hacking Libcall and Java


kamichiduさん。 (一般的プログラマ)
 一般的プログラマであるkamichiduさんの発表。
(kamichiduさんは一般的なプログラマとのこと)
 libcall()がif_luaより速いというのはいいことを聞けた。


make-yourself-reader-of-help


janus_wel氏。
 helpの重要性!
Vimの逆引きhelpというアイデアを実装中であるらしく、 そのアイデアについて会場でもいい反響があった。
PRカモン、とのこと。


lets-use-appveyor


k-takata氏。
 Windows環境によるCIサービス。
VimのWindows対象のCIにも使われている。
謎の問題に悩まされているらしい。  Windows Vim user向け 超オスススメ情報 (これ)


power-assert in Vim script


haya14busaさん。
 powerこそパワー。
当日の発表では、謎の位置に"転ばぬ先の杖「vint」"という言葉が書かれており
完全に強かった。


海外Vimmerが開発したVim pluginの紹介 (In English)


 deris0126さん。
One more thing
vimrc読書会に出てきたVim pluginの総まとめすごい。
 また、vim-rengbangがよいらしく、あとで見てみる。


切り刻め! HTML


yoshiko-pg氏。
 フロントエンドエンジニアから見たVim及びVimの便利なプラグインなど。
また、VimのわからないことをTwitterでつぶやくと、Vim界の犬さんやVim界のマンボウさんが教えてくれることの紹介。
 VimConf2015の公式サイトと資料の綺麗さ。


vim-jpのvimhelp, reading_vimrcのホスト関連のお話


zchee氏 ( _zchee_氏 )。
 vimrc読書会でいつもお世話になっている、reading_vimrc botについて。
たった2つのボタンを押すだけでreading_vimrcが起床するよ、という構造的な話。 すごい。
 ここでは、「zchee」氏の読み方が「チー」氏であることが発表された。


5年間Yokohama.vimをやってみて感じた事


guyon氏。
 Vimmerはシャイである話。
実際かなり参考になりそうなので、すごい。




お昼


 aomoriringoさん、derisさん、thincaさんと共にラーメン食べました。
aomoriringoさんはなんか山盛りの七味の中にラーメンを入れたようなラーメンを食べてました。
実際強そう。


懇談会


 スシそしてピッツァである。
ピッツァには中毒作用があるので、ピッツァを大変食べた。


 yoshitiaさんとEvilの話をした。
Evilの元となる思想は、vi時代の頃からあったらしい。


 ももんがさんと何らかの話をした。
アレをアレするような話をした。 (した)


 うさぎさんと話をした。
ガロアの5次方程式にて群が使われたという話をした。


 Kuniwakさんと話をした。
ガロアの5次方程式にて群が使われたという話をした。


 何やら会場の一角で賑わっていたので近づいてみたら、皆さんでGitの話をしていました。
Git-Challengeについての話など。
ほむ


 僕はまだGitについて疎いので、
merge --squashしたらどうだとか、 merge --ffやらpull --rebaseやら、revertの活用事例やらを効くことができて、
知見の高まりを感じた。


 最近commit --amendやrebase、reset --hardとreflogなどでしかcommitのまとめをしてないので
特にpull --rebaseやrevertについては「なるほどなぁ」という感じだった。 ( デプロイに紐付いたmasterにbugが入ったpushをしたりした場合に
revertが有用…など )


 件のbranchが鬼のように枝分かれしていて、合流地点が複数あるようなものを
召喚してしまった話も聞けた、やばい(やばい)。 (上記のGit-Challengeの記事参照)


まとめ


知見が高まり「ゆフォフォーイ」という感じがありました。(あります)


今日楽しかったこと

今日楽しかったこと




  1. YAPCが終わった後なので、興味深い資料がいっぱいあった ( ありすぎカーニバル )

  2. 前回のvimrc読書会で得た素晴らしい実装を自分のvimrcに改良して組み込めた ( Tab毎にカレントディレクトリ設定 )

  3. 朝食べたブラックサンダーがとてもおいしかった



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。