Comments (4)
とりあえずcli.goのチェック処理を全部scenario.goにリファクタリングして移植した。
一つ一つのシナリオが上から一直線になって読みやすくはなった。しかし、同じような処理が複数箇所に書かないといけなかったのは今後のリファクタリング課題。
それよりも大きな問題は、 PlayWithURL
のインターフェイス。
_, err = postImage.PlayWithURL(s1)
if err != nil {
return // TODO: どういうエラーハンドリングが適切か考える
}
CheckFunc
の外でActionをエラーにすることはできないので、ここに来た時点でエラーであってもActionはエラーにならないし、競技者にもエラーが伝わらない。
やはり PlayWithURL
は廃止して CheckFunc
の引数にリダイレクト先URLを受け取るか、ExpectedLocation
で正規表現や前方一致を受け付けるようにするかのどちらかにするべき。
from private-isu.
現状の実装だと PlayWithURL
と Play
の差は返り値しかないので、返り値を受け取らないなら使う必要は無いです。
PlayWithURL
はすごくイケてないので廃止したいですが、リダイレクト先のURLを受け取る方法がないのでとりあえず作りました。
from private-isu.
ExpectedLocationを正規表現にしてPlayWithURLを廃止することにします。
from private-isu.
PlayとCheckFuncを分けずにの第二引数にCheckFuncを渡すスタイルでいい気がする
これだけ残ってるがあとは終わった。
CheckFuncを書いた時点でチェックできてる気になってるから、Playを呼び忘れてしまう。実際2回ぐらい気づいて直した。
from private-isu.
Related Issues (20)
- スコアの計算式 HOT 3
- POSTが200じゃなかったときにその時点でエラーにしてほしい HOT 4
- コメントがトップページでは3件まで出てて投稿ページでは全件表示されてることをチェックする
- シナリオの途中で失敗したらシナリオ全体を失敗する HOT 1
- assetもmd5チェックする HOT 2
- OSコマンドインジェクション対策 HOT 2
- goのエラーをそのまま競技者に見せ無い方がいい? HOT 8
- 静的ファイルでExporesヘッダを吐いて304できるようにすると、ベンチマークが失敗する
- UAにGo-http-client/1.1がまざっていることがある HOT 2
- benchmarkerから画像のuploadがないっぽい?
- CSRF対策にsession_idそのものを埋めこんでいるのはあまりよろしくなさそう
- /postsでmeを取得していない HOT 2
- redirect URI組みたて時のuri escape HOT 1
- post_idが数字じゃないときも通過する HOT 2
- ユーザーページの統計情報をいれてなくてもベンチマークが通る
- Dependency Dashboard
- benchmarker 用の image がない? HOT 2
- Action Required: Fix Renovate Configuration
- provisioningがcomposer install時に失敗する HOT 2
- Commentテーブルのpost_idにインデックスを貼る HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from private-isu.