「リファクタリング」を含む日記 RSS

はてなキーワード: リファクタリングとは

2017-09-19

今日見た雑誌AIプログラマー仕事を奪うという記事があった。職業プログラマーとしてそれは大いに結構なんだが、多分もしそうなったら思っている使われ方はしないだろうなと。

思っている使い方は要件インプットするとdreamweaver並に汚いソースコードアウトプットするから、それをプログラマリファクタリングして納品。実際の使われ方はデザイナーが汚いソースコードを一切見ずにテストもせずに納品。コピペと変わらない。プログラマでさえ時間が無いとか自分言い訳してリファクタリングせずに納品しそう。

AIが来たら、ただでさえレベルの低い野郎どもが更にレベル低くなるだろうなって

2017-09-11

https://anond.hatelabo.jp/20170910205249

まじな話をすると、N予備校プログラミング入門コースやるのがオススメ

https://www.nnn.ed.nico

一日8時間勉強時間があるなら、だいたい一ヶ月で終わる内容。

月額1000円だけどしっかり勉強すれば一ヶ月の無料間中に終わると思う。

もともとN高等学校のノンプログラマーの生徒をWebエンジニアとして就職させるために作られたカリキュラム講師曰く去年はこれで二人エンジニア就職を決めたらしい。

内容も相当親切に説明していて、プログラミングで何か作るだけじゃなくて、就職必要な環境構築やセキュリティまでみっちりやる。

http://qiita.com/sifue/items/7e7c7867b64ce9742aee#%E3%82%B3%E3%83%B3%E3%82%BB%E3%83%97%E3%83%88%E3%82%92%E3%82%82%E3%81%A8%E3%81%AB%E6%A7%8B%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%BC%E3%82%B9%E3%81%A8%E5%86%85%E5%AE%B9

講師が書いてる入門コースで習うことがまとめ。テキスト教材もあるけど授業も1項目を2時間で説明している。授業は週2の生放送とそのアーカイブがある。

↓みたいなことが学べる

----

Webプログラミング入門コース

Web ブラウザとは (Chrome, デベロッパーコンソール, alert)

はじめてのHTML (VSCode, HTML, Emmet)

さまざまなHTMLタグ (h, p, a, img, ul, tableタグ)

HTMLで作る自己紹介ページ (HTMLタグ組み合わせ, コンテンツ埋め込み)

はじめてのJavaScript (JS, ES6, エラー)

JavaScriptでの計算 (値, 算術演算子, 変数, 代入)

JavaScript論理を扱う (論理値, 論理積, 論理和, 否定, 比較演算子, if)

JavaScriptループ (ループ, for)

JavaScriptコレクション (コレクション, 配列, 添字, undefined)

JavaScript関数 (関数, 関数宣言, 引数, 戻り値, 関数呼び出し, 再帰)

JavaScriptオブジェクト (オブジェクト, モデリング, プロパティ, 要件定義)

はじめてのCSS (CSS, セレクタ, background-color, border)

CSSを使ったプログラミング (transform, id, class)

Webページの企画とデザイン (企画, 要件定義, モックアップ, 16進数カラーコード)

診断機能の開発 (const, let, JSDoc, インタフェース, 正規表現, テストコード)

診断機能組込み (div, 無名関数, アロー関数, ガード句, truthy, falsy)

ツイート機能の開発 (リバースエンジニアリング, URI, URL, URIエンコード)

Linux開発環境構築コース

LinuxというOS (VirtualBox, Vagrant, Ubuntuインストール, OS, CUIの大切さ)

コンピューター構成要素 (ノイマンコンピューター, プロセス, lshw, man, ps, dfの使い方)

ファイル操作 (pwd, ls, cd, mkdir, rm, cp, mv, find, ホストマシンとの共有ディレクトリ)

標準出力 (標準入力標準出力標準エラー出力パイプgrep)

vi (vimtutor)

シェルプログラミング (シバン, echo, read, 変数, if)

通信ネットワーク (パケット, tcpdump, IPアドレス, TCP, ルーター, ping)

サーバークライアント (tmux, nc, telnet)

HTTP通信 (http, https, DNS, hostsファイル, ポートフォワーディング)

通信をするボットの開発 (cron, ログ収集)

GitHubウェブサイトの公開 (GitHub, リポジトリ, fork, commit, 情報モラル)

イシュー管理とWikiによるドキュメント作成 (Issues, Wiki)

GitとGitHub連携 (git, ssh, clone, pull)

GitHubへのpush (init, add, status, インデックス, commit, push, tag)

Gitのブランチ (branch, checkout, merge, gh-pages)

ソーシャルコーディング (コンフリクト、プルリクエスト)

Webアプリ基礎コース

Node.js (Node.js, nodebrew, Linux, REPL, コマンドライン引数, プルリク課題)

集計処理を行うプログラム (集計, 人口動態CSV, Stream, for-of, 連想配列Map, map関数)

アルゴリズムの改善 (アルゴリズム, フィボナッチ数列, 再帰, time, プロファイル, nodegrind, O記法, メモ化)

ライブラリ (ライブラリ, パッケージマネージャー, npm)

Slackボット開発 (slack, mention, bot)

HubotとSlackアダプタ (hubot, yo)

モジュール化された処理 CRUD, オブジェクトライフサイクル, filter)

ボットインタフェースとの連携 (モジュールのつなぎ込み, trim, join)

同期I/Oと非同期I/O (同期I/O, 非同期I/O, ブロッキング)

例外処理 (try, catch, finally, throw)

HTTPサーバー (Web, TCPとUDP, Webサーバーの仕組み, Node.jsイベントループ, リスナー)

ログ (ログ, ログレベル)

HTTPのメソッド (メソッド, GET, POST, PUT, DELETE, CRUDとの対応)

HTMLフォーム (フォームの仕組み, form, input)

テンプレートエンジン (テンプレートエンジン, jade)

HerokuWebサービスを公開 (Webサービスの公開, heroku, dyno, toolbelt, login, create, logs)

認証利用者を制限する (認証, Basic認証, Authorizationヘッダ, ステータスコード)

Cookie を使った秘密匿名掲示板 (Cookie, Set-Cookie, expire)

UI、URI、モジュール設計 (モジュール設計, フォームメソッド制限, リダイレクト, 302)

フォームによる投稿機能の実装 (モジュール性, textarea, 303)

認証された投稿の一覧表示機能 (パスワードの平文管理の問題, 404, テンプレートのeach-in)

データベースへの保存機能の実装 (データベース, PostgreSQL, 主キー)

トラッキングCookieの実装 (トラッキング Cookie, IDの偽装, Cookie の削除)

削除機能の実装 (データベースを利用した削除処理, 認可, サーバーサイドでの認可)

管理者機能の実装 (Web サービス管理責任, 管理者機能の重要性)

デザインの改善 (Bootstrap, レスポンシブデザイン, セキュリティの問題があるサイトを公開しない)

脆弱性 (脆弱性, 脆弱性で生まれる損失, 個人情報保護法, OS コマンド・インジェクション)

XSS脆弱性対策 (XSS, 適切なエスケープ処理, リグレッション)

パスワード脆弱性対策(ハッシュ関数, メッセージダイジェスト, 不正アクセス禁止法, パスワードジェネレーター, 辞書攻撃)

セッション固定化攻撃脆弱性対策 (セッション, セッション固定化攻撃, ハッシュ値による正当性チェック)

より強固なセッション管理 (推測しづらいセッション識別子, 秘密鍵)

CSRF脆弱性対策 (CSRF, ワンタイムトークン)

安全なHerokuへの公開 (脆弱性に対する考え方, HTTPの廃止)

Webアプリ応用コース

Webフレームワーク (Express.js, フレームワーク導入, 簡単なAPI, セキュリティアップデート, Cookie パーサー, ミドルウェア, 外部認証, ロガー)

ExpressのAPI (app, Properties, Request, Response, Router)

GitHubを使った外部認証 (Passport, OAuth)

スティングフレームワーク (Mocha, レッド, グリーン, リファクタリング)

継続的インテグレーション (CircleCI)

クライアントフレームワーク (Webpack, Chrome 以外のブラウザでもES6)

DOM操作フレームワーク (jQuery, jQueryアニメーション, this)

AJAX (jQuery.ajax, クロスドメイン, 同一生成元ポリシー, x-requested-by, CORS)

WebSocket (WebSocket, WebSocketの状態遷移, Socket.io)

RDBとSQL (DDL, DCL, CREATE, DROP, INSERT, DELETE, UPDATE, WHERE)

データモデリング (リレーショナルモデル, 正規化)

テーブルの結合 (外部結合, 内部結合, 片側外部結合, JOIN ON)

インデックス (インデックス, 複合インデックス, Bツリー)

集計とソート (SUM, COUNT, ORDER BY, GROUP BY)

「予定調整くん」の設計 (要件定義、用語集、データモデル、URL設計モジュール設計、MVC)

認証とRouterモジュールの実装 (Mocha, supertest, passport-stub, モックテスト)

予定とユーザーの保存 (セキュリティ要件, UUID, 複合主キー)

予定とユーザーの一覧の表示 (非同期処理, Promise, then)

出欠とコメントの表示 (入れ子の連想配列, Promise.all, 子どもからデータを消す)

出欠とコメント更新 (Promiseチェイン, リファクタリング)

予定の編集と削除 (要件の衝突, 関数再利用)

デザインの改善 (this, グローバルオブジェクト)

セキュリティ対策と公開 (X-Frame-Options, Heroku環境変数)

2017-08-30

打ち出さないと見えないとか言って、ネ申エクセルを量産するくらいなら、4Kディスプレイ支給して打ち出さなくても確認できるようにしたほうがデータの可用性も確保できるし

エクセルをクソみたいにリファクタリングする必要もなくなるから人件費の削減になる

老害死ね

2017-08-12

近年のアプリケーションファイルサイズ肥大化が嫌いだという話

私は、最近アプリケーション特に、やたら機能を詰め込んで肥大化したアプリケーションが嫌いだ。

とにもかくにも、起動が遅いのだ。

SSD等の高速なメディア使用すれば多少はマシになる」という意見もあると思うが、SSDHDDよりも記憶容量が(現時点では)少ないことが多い。

まりSSD内にインストールできるアプリケーションは限られてくる。

で、これに関して、私が最もストレスを感じるのは、Visual Studio特に2010以降のバージョンである

まず、起動が遅い。加えて、ソリューションファイルの読み込みも遅い。裏でなにかを走らせているのかわからないけど、モタモタする印象が拭えない。

加えて、これはC++プロジェクト等で顕著に現れるが、スタティックビルドした際、生成される実行ファイルサイズバカに大きい。最適化をしても平気で2MBとかになる場合もある(要根拠)。

Visual Studioは、確かに便利にはなっている。リファクタリング可能になったり、予測変換が賢くなったりしている。

ただ、それ以上に、私は前述の欠点が気になってしまう。

そのため、私は未だにVisual Studio 2008から離れられない。前時代思考だとバカにされるかもしれないが、私はこれくらいで満足である。軽快だし、生成される実行ファイルも、2010以降のソレと比べてはるかに小さい。

ハイスペックマシンを常用している人にはあまり関係のない話ではあるかもしれないが、私のようにそうでない人もいるということは、Visual Studio開発者の方々には、頭の隅に入れておいて頂きたいと思う。

補足

SSD導入云々に関しては、職場パソコン場合には導入がそもそも難しいケースも多い。資金面が十分でない企業場合コストから難しい。

ただ、そんな環境であっても、開発ツールは最新のものを使うしかないケースはままある。そんなとき、私はとてつもなくストレスたまる

2017-07-25

Qiitaプログラムを公開してみた

初心者から初心者ですって書いて割と初歩的なプログラムネスト無しif文とforeachとIOだけの60行のコード貼ったら

コメント欄でこうやって書いた方がいいで、ってアドバイスくれたんだけど、めっちゃ嬉しいな

思いついて作ったプログラムを書いて動いたらQiitaに載せてリファクタリングの流れは最高

2017-07-07

IT】開発スピードは全力で落とすべきである

頑張って一度速くやると、アホなマネージャー勘違いする

勘違いしたアホなマネージャーは、次もそのスピードを求めるし、他者にもそれを求める

マネージャーだけではない、別領域のアホなエンジニア勘違いする

「何とか間に合わせてほしい」に応じる必要もない

応じた結果品質が少しでも落ちたらこちらの責任にされる、説明無駄である

 

遅いチームはとても楽しそうである

全力でガバガバスケジュールを引いて、入念にコードをチェックして、楽しそうに議論を交わす

コードが正しいかどうか、高尚かどうかが最も大事ことなのだ

事業の都合とか考えなくていい

どうせ今取り組んでいる作業は売上につながらないのだから

リファクタリング設計は開発スピードを上げるために行うのではない

楽しいから、あるいはそれが絶対的に正しいからやるのだ

正しいかどうかは、チームの一番えらいような気がするエンジニアが決める

 

私のように大量の仕事をしてはいけない

何か問題があればコードを書いたもの自分責任になるのだ

極力既存状態を保持し、影響のないように書くべきである

でないと「元のコードが悪い」なんて言えなくなる

いか責任回避するかがこの仕事本質である

 

大抵の会社普段との差分しか評価をしない

粗暴の悪いヤンキーがたまに良いことをすると評価が上がるのと同じだ

常に頑張ってはいけない、全力でゆっくり仕事しなければ幸福は得られない

 

もし同僚が頑張っていたら可哀想から足を引っ張ってあげよう

簡単だ、ルールをいっぱい作ると良い

業務効率化するためです」と言えば誰も文句は言えないだろう

責任所在曖昧にするという方法もある

少人数だけで決められないほど、物理的に仕事が進まなくなり、ゆっくりはてブを読む時間ができる

 

ツライ

2017-06-26

https://anond.hatelabo.jp/20170626005657

本当の地獄リファクタリングなりモダナイズが終わった後にやってくるよ

何もする事が無い一人の部署

話し相手もいない

相談相手もいない

評価もされない

定時であがるし

給料も貰える

けど何も無い

行き止まり

2017-05-27

東京メトロ見てるとリファクタリングしたくならない?

なにその導線設計

設計したやつ出てこいや

2017-05-19

法律かいう継ぎ足しに継ぎ足しで秘伝のタレみたいになってるクソコードの山

いい加減利リファクタリングせーや

レガシーコード盛り盛りすぎてわけわからんことになっとるぞ

サングリア作るのが酒税法違反になるとか意味わからん

2017-05-10

コミット単位をどうしようとエンジニア個人自由です

当方意識高い系ITスタートアップベンチャーエンジニア

数名しかいないエンジニアチームの中でも社歴が浅い。

レビューの度にコミット単位がでかすぎると罵られるが、まとまりのないコミットを連発して仕事してる感を出してる割に中身はコピペコード連発で大した仕事してないやつに言われたくないんだが…

何かにつけて口出ししないと気がすまない連中っているよな。コードの中身に突っ込みどころがなくなったからって、コミット単位にまで口出しますか。

その前におめーのクソコードなんとかしろ!!!毎回リファクタリングする身にもなれっつーーの。

2017-04-06

http://anond.hatelabo.jp/20170406134632

昨日の自分自身がその前任者だったことが良くある

から新しい機能を加える時はコードリファクタリングに余念がありません

2017-03-31

http://anond.hatelabo.jp/20170331161006

例えるならリファクタリングは「部屋の模様替え」ではないかと。

私も部屋の片付けや掃除はきらいだけど、模様替えは好き。

リファクタリング好き、部屋の片付け嫌い

なぜなのか

2017-03-13

営業トークがしたい

営業理論応酬を誰かとしたい。

面白いんだよ?どうやって商材を顧客に売るのか考えて実践するのって。

プログラミング趣味なんですけど営業ってプログラミングに近いんですよ。

仕様の制定からデバッグリファクタリングまであります

ソフトウェア開発の営業マンはしたことないので営業プログラミングみたいだと言うとIT業界の人から叱られるかも知れませんけど。

2017-02-08

赤ん坊の頃からテスト駆動を身につけるべき

常にリファクタリング自己批判を繰り返しながら生きるべき

2017-01-31

言論の自由は何言ってもいいんだよ

別の法や規制で潰すのは別によし

言論の自由レイヤーでやるな

あとでリファクタリングするのが超面倒なので設計として切り分けるべきで、全体の処理としては別に特定の(気に食わない)言論潰しをやるなという話ではない

という解釈

2017-01-16

寝なきゃいけないのにリファクタリングしだしたら止まらない

掃除しだして止まらない感覚に似てる

2016-10-08

プログラマー転職をするとき面接で聞くべき8つのこと

年収

一般社員の平均年収リーダークラスの平均年収マネージャークラスの平均年収を聞いておいたほうがいいです。

何かを大きく変えるという発表がされている場合、変えたものがいつ出るのかを聞く

たとえばプログラミング言語フレームワークを変更するという発表がされていた場合、それがいつまでに出るのか聞いておく必要があります

具体的な時期が決まっていない場合、いつか出る書き直されたコードを夢見ながら既存のどうしようもないコードを触るはめになります

会社プロジェクト課題を聞く

会社としてコミュニケーション課題を感じていると回答が来た場合は、社内の状況として、言ってもどうにもならないという閉塞感が漂っている場合があります

ドキュメントの有無を聞く

単位運用されているのにドキュメントがあまりないという回答が来た場合、逃げたほうがいいです。

これから世にでる物の場合自分が書いていくという覚悟必要になります

また、会社情報営業情報サービス仕様が一箇所にまとまってしまっている場合は、目的ドキュメントを探しづらくなっていることが予想されます

会議の回数と所要時間を聞く

1時間会議が週に4回あれば、1週間の営業日のうち半日会議にもっていかれる計算になります

自社サービスを作っている会社場合は、自社サービスをどのように使っているか聞く

自社サービスを作るということは、世の中にあるツールでは解決できない問題があるからこそ作るものだと思います

まり、自社が一番自社サービスを使っている人達になるはずです。

自社サービスを使っているという回答があった場合でも、開発の動作確認用に使っているだけ……ということがあるかもしれません。

空気の循環はどうしているのか聞く

空気が悪いと体調不良の人が続発します。

空気清浄機オフィスにどれくらい置いているか、換気はしているかなど聞いたほうがいいです。

評価制度について聞く

例えば売上が評価において3-4割の重みを持つ場合既存コードリファクタリングなどをさせてもらえず、新しい機能機能改善違法増築していくことになります

ちなみに私はこれらを聞かなかったばかりに転職して後悔しています

これ以上転職して不幸になる人が増えないでほしいです。

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん