トップページphp
1002コメント237KB

【PHP】2chat開発スレ【2chを越える】 [無断転載禁止]©5ch.net

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2016/04/23(土) 13:45:28.79ID:???
【2chatとは】
掲示板とチャットを組み合わせたオープンソースのPHPスクリプトです。
名前の由来は2ch+chat

【特徴】
*基本的な面
ユーザー登録は必要だが、匿名
ユーザーは日付の経過や書き込み、荒らしなどでレベルが上下し、このレベルは通報の影響度などに関わる
管理人が不在でも通報が集まった書き込みは自動削除
チャット形式の為、書き込み上限はなく、テンプレはいつでも誰でも編集可能
板はなく、各スレッドはカテゴリを付けられる為、スレッドを探しやすい
単発スレには向かない

*専ブラ
jsを使い専ブラなしで快適に閲覧出来るUIを提供
WEBで見れるため、PC⇔スマホで開いているスレなどを完全同期できる

*API
誰でも使えるAPIを提供(jsonp対応)
2ch互換のAPIも提供
ユーザーはサブパスワードを作る事で、悪意を持った外部サービス管理人によるアカウントの乗っ取りを防ぐ事が出来る
開いているスレなども外部サービス間で同期可能
0002nobodyさん2016/04/24(日) 09:11:09.09ID:???
現在中核部分を作っています
0003nobodyさん2016/04/24(日) 11:10:56.66ID:???
普段c#でプログラム組んでいるので、オブジェクト指向で作っていく予定です
0004nobodyさん2016/04/24(日) 11:46:44.86ID:???
GitHub作りました
https://github.com/kgtkr/2chat
0005nobodyさん2016/04/24(日) 22:54:01.29ID:???
クラス設計はある程度時間を掛けて行います
PHPは簡単に書ける分、コードが汚くなりやすいみたいですので・・・
0006nobodyさん2016/04/24(日) 22:57:03.03ID:???
まずデータベースに依存しない主要なロジックから考えようぜ
永続化の実装、つまりmysqliなどはまだコードに出なくていい
0007nobodyさん2016/04/24(日) 23:03:15.96ID:???
DBを使った本格的なWEBアプリは初めてなので、そこが悩んでいるんですよね
まだメソッドの中身は書かずに、メソッドの宣言だけを書いてクラス設計を行っています
デスクトップアプリでのオブジェクト指向はある程度分かるんですが、DBを使ったオブジェクト指向が結構難しくて・・・
c#と違ってプロパティがないのも厳しいです
0008nobodyさん2016/04/25(月) 00:00:42.13ID:???
PHPで作るメリットが何かあるん?
Node.jsやPythonとか、他にも候補にがありそうだが
0009nobodyさん2016/04/25(月) 00:15:05.76ID:???
javaは大規模システムでないとメリット薄いみたいですし、c#はLinux鯖だと使えない(Monoはありますが・・・)からです。
そうすると扱える言語はPHPしかないので・・・
中括弧言語以外は苦手ですし
0010nobodyさん2016/04/25(月) 09:23:17.98ID:???
C#からならPHP7で正解じゃないかなあ
とりあえずPSR読んで、それとテスト書く準備しておけばいいよ
001112016/04/25(月) 18:46:27.88ID:???
パフォーマンスとカプセル化を考えたら、Thread has-a Responseの関係はなくした方がよさそう
内部ではフィールドにあるんじゃなくて、Threadクラスのgetterでクエリー呼び出しているんだけど
全て独立したクラスとして考えた方が、良い気がする
WEBアプリはやっぱり難しい・・・
デスクトップなら多少パフォーマンス悪くても、問題ないけど、WEBアプリは大人数で使うからパフォーマンスはやっぱり重視しないとね・・・
0012nobodyさん2016/04/25(月) 20:17:34.90ID:???
パフォーマンス気にするのはリリースしてそこそこの人気サービスになってからにしてくれ
まずは実装ではなく仕様を煮詰めていかないと
ある程度仕様が決まったらフレームワークとか決めてそこから本格的にクラス設計(まさかフレームワーク使わず全部自分でとは言わないよね?)
001312016/04/25(月) 20:29:42.47ID:???
確かにまだ早いですね
フレームワークの予定はなかったんですが、使った方がいいですかね?
PHPでは、APIの提供のみを行い、UIはhtmlとjsのみで作りたいと考えています
001412016/04/25(月) 20:37:28.05ID:???
閲覧中のスレリストやNGリストもサーバーに保存し、APIとして読み込み/書き込みを出来るようにすることで、どのようなアプリでも同期出来るようにしたいと考えています
APIは、XML/JSON/JSONP/2ch互換のdatで提供する予定です
0015nobodyさん2016/04/25(月) 21:44:24.42ID:???
ユーザー登録必須だと興味すら持たれんだろうなあ
読み書きはレベル0のゲスト扱いで参加できるのかな
0016nobodyさん2016/04/25(月) 21:59:23.79ID:???
idとパスワードだけで出来るので簡単に出来ます
redditみたいな感じです
0017nobodyさん2016/04/25(月) 22:04:06.33ID:???
少なくとも気軽に中の様子を伺えないと見向きもされないと思う
idとパスワードだけでもハードルはかなり上がるから2ch越えるのは絶対無理
001812016/04/25(月) 22:48:29.11ID:???
読み取りだけなら認証なしで出来ますが、クロスドメイン対応にする予定なので、認証なしで行うと悪意のあるサイトがこっそり書き込んだり出来るので危険なんですよね・・・
0019nobodyさん2016/04/26(火) 11:57:33.77ID:???
とりあえずSPA取り入れたほうがいい
んでもって認証は後回しの設計と言うか別のサーバとか
プロセスに委任する形にしようぜ
まずはスクラッチとして本体だけの設計で作ってみたらどう?
認証後回しにするってのはそれが阻害する場合があるから
とりあえず作ることによって誰がどんなもののためにどうして必要なのかが見えてくる
ある程度の想定した問題に対応するのはいいとして仮定の問題に固執して対応するのは現状いらんと思うな
アイパスとか個人設定とか細かい面倒なのは後回しにしたほうが楽しめる
002012016/04/26(火) 17:59:11.72ID:???
シングルページアプリですかね?
今はDBと接続するクラスを作っています
多分モデルって奴です
0021nobodyさん2016/04/26(火) 20:14:15.16ID:???
名前空間つけてくれ
002212016/04/27(水) 00:02:44.58ID:???
>>21
C#の使い方と少し違うみたいなので、明日しっかり調べてします
002312016/04/27(水) 00:07:04.34ID:???
とりあえずコミットしました
002412016/04/27(水) 17:31:27.88ID:???
クラス設計終了しました
002512016/04/27(水) 17:33:51.47ID:???
ToDo
・ドキュメントコメント通りの動作をするように、エラーチェックとクエリーを行っていく
・このクラス群をAPIとして提供するためにラップ
・jsでUIを作る
002612016/04/27(水) 18:19:17.43ID:???
PHPのコーティング規約全く守ってなかった・・・
大文字小文字直そう・・・
002712016/04/27(水) 18:26:07.36ID:???
括弧の位置、フィールド名、ローカル変数名、クラス名、メソッド名、ネームスペース名はjavaの規約に合わせて書きます
0028nobodyさん2016/04/27(水) 19:06:13.28ID:???
テスト書いていこう
002912016/04/27(水) 20:03:03.06ID:???
実は今までテストした事ないんですよ
javaとかc#でも色々なアプリ作りましたが、一回もした事ないので何をすればいいか。。
でもWEBアプリなら脆弱性に繋がったりするので必要ですよね
勉強してみます
0030nobodyさん2016/04/28(木) 07:16:10.47ID:???
PHPUnit が有名
FW導入した方がいいよテスト関連も充実してるし
SPAとか使うならそっち関連の導入もあるし
0031nobodyさん2016/04/28(木) 16:55:45.15ID:???
テストは後回しでもいいよ
使い捨てのつもりでいいからとりあえず動くものを作ってまずは1つ完成させること

完璧を目指して手が止まるのが一番まずい
百聞は一見に如かず、実物の試作品があればいろいろと意見も出しやすいし
003212016/04/28(木) 18:01:16.00ID:???
今は中身を書いています
コメントでメソッドの責任は書いたので、あとは実装するだけです
003312016/04/28(木) 18:18:39.80ID:???
メモ
$delete
$attack
$category
$template
$title
003412016/04/28(木) 18:34:56.96ID:???
追記
$not
003512016/04/29(金) 18:14:46.02ID:???
変数の宣言とスコープがないから、いつの間にか上書きしていたりして怖い
003612016/04/29(金) 23:59:23.36ID:???
とりあえずResponseクラス作りましたが、ソースが酷い(特にWriteResponse)ので、privateメソッドなどを使い整理します・・・
あまり長いメソッドだと、変数の上書きなどで、バグが発生する可能性があるので・・・
003712016/04/30(土) 14:10:30.08ID:???
メモ
SHA256を64進数
003812016/04/30(土) 17:36:20.68ID:???
2chでいうIDもトリップも43文字とかいうかなり長い文字列になってしまった・・・
003912016/04/30(土) 17:38:06.14ID:???
パスワードハッシュは43文字にして、IDとトリップは先頭から○文字を切り取る的な事すればいいか
004012016/05/01(日) 00:01:30.60ID:???
名前も目指している機能も似たようなサービスを見つけてしまった・・・
0041nobodyさん2016/05/01(日) 00:10:12.39ID:???
気にすんなよ!!!
0042nobodyさん2016/05/01(日) 11:31:02.55ID:???
どうせ違うものになるから平気
なんてサービスなのさ
004312016/05/01(日) 12:29:06.44ID:???
>>42
にちゃっとるって奴です
0044nobodyさん2016/05/01(日) 12:35:15.36ID:???
>>43
会員制ではないし、idも表示されないやん
0045nobodyさん2016/05/01(日) 12:39:10.92ID:???
というか、認証必須にするのにidを表示するとはこれいかに
匿名にしたいのか、登録ユーザ性にしたいのか、よくわからん
004612016/05/01(日) 14:25:44.88ID:???
>>45
ユーザーから見たら匿名だけど、管理を楽にするためにID制
どのユーザーが書き込んだら分かるのは管理人だけ
本人確認は2chと同じでトリップとID
004712016/05/01(日) 15:04:10.58ID:???
とりあえず、3大クラス(Thread、Response、User)出来たけど、まだ実装忘れとか結構ありそう
とりあえずSQL制約を設定していく
004812016/05/01(日) 15:20:28.63ID:???
AUTO_INCREMENTは1からか・・・
書き直さないと
004912016/05/01(日) 15:37:09.59ID:???
あ、設定すれば0からでもOKなのか
0050nobodyさん2016/05/01(日) 17:21:21.58ID:???
>>46
それはシステム管理者から見たら全く匿名ではないってことだよね
警察とか公的権力が働いたらログを出す義務が発生するんじゃない?
005112016/05/01(日) 21:15:32.10ID:???
>>50
そうなるけど・・・
そっちの方が管理しやすいし
完全匿名でも、普通IPは記録するから、権力が働いたら匿名じゃなくなるのは一緒なのでは?
005212016/05/01(日) 23:06:54.88ID:???
SQL文分からなすぎ・・・
ちょっと複雑な事するとかなり難しくなる
0053nobodyさん2016/05/01(日) 23:08:57.58ID:???
>>51
そりゃ、TCP/IPを使っているのだからIPは記録するさ
でも「原理的に匿名でない設計」と「匿名を目指している設計」は似て非なるものだと思うよ
「表面的には匿名だけど、いつでも書き込んだ主を公開できる準備があるので注意してね」なんて注意書きを書いたらユーザはどう感じるかな
0054nobodyさん2016/05/01(日) 23:38:17.36ID:???
なにいってんだこいつ
005512016/05/01(日) 23:41:41.15ID:???
>>53
IDにLVをつける事によって、通報の多い書き込みの自動削除などがやりやすくなる
今の2ch見ていると、明らかに削除人が足りていないから、出来るだけ自動化したいし
005612016/05/02(月) 00:16:33.73ID:???
responseテーブルが、スレッドIDとレス番の複合主キーなんだけど、管理しにくいな・・・
スレッドに対するレス番じゃなくて、全部のレスに適当に番号振っていった方がよさそう
2chを意識しすぎた感
明日設計見直そう
005712016/05/02(月) 22:28:44.39ID:???
中核クラスは一応出来た
・・・と思ったんですが、javaとc#にincludeがないので、書くのすっかり忘れていました・・・
includeとコメントを詳しく書いたりして、APIを作っていきます

APIはtypeパラメーターに形式(XML、JSON、JSONP)を指定するタイプにします
005812016/05/03(火) 01:01:09.35ID:???
JSON(P)と、2ch互換があれば、XMLいらないんじゃないかと思ってきた
005912016/05/05(木) 09:05:44.80ID:???
クロスドメインでPOSTが使えないので、書き込みAPIの文字数制限がかなり厳しいです
そこで、短い書き込み用のGET、圧縮して送るGET、formタグからならPOSTが可能な事を利用したリダイレクトありPOSTを用意したいと思っています
0060nobodyさん2016/05/05(木) 09:43:28.83ID:???
PHPにクロスドメイン制限なんてあったっけ
006112016/05/05(木) 11:19:03.14ID:???
jsからAPIを使う時用です
0062nobodyさん2016/05/06(金) 13:26:22.48ID:???
>>61
PHPを経由させればいいのでは?
006312016/05/06(金) 17:49:22.63ID:???
>>62
IP記録などで都合がいいので、出来るだけクライアント言語で作りたいと考えています
006412016/05/06(金) 23:23:44.10ID:???
圧縮しなくてもIE以外なら大丈夫そう
長くて6000文字程度だし
IEの2000文字制限がな・・・
006512016/05/07(土) 08:58:18.11ID:???
API完成しました
006612016/05/07(土) 11:54:41.03ID:???
・メモ
タイムゾーン
UPDATE変更の必要なし問題
0067nobodyさん2016/05/07(土) 15:24:21.79ID:???
クロスドメインはいいんだけど
サーバ構成はどんなふうに考えてるとか
サイトマップとかページのフレーム構成とか
どんなふうに考えてるのか見てみたいな
006812016/05/07(土) 17:30:20.31ID:???
とりあえずAPIは出来たので、今クライアントサイドを作っています
Twitter風UIにする予定です
006912016/05/07(土) 20:28:53.36ID:???
返信をどう実装しようか。。
Twitterの場合、TLに返信が色々出てくるんだが
検索速度を考えると、整合性に気をつけてテーブル分割した方がよさそう
007012016/05/07(土) 22:04:18.58ID:???
クライアントサイド難しい…
サーバーサイドは単純作業で、セキュリティにだけ気を付ければよかったけど
007112016/05/07(土) 22:19:37.26ID:???
とりあえず、HTMLとcssのみで、デザインだけ作ってみます
007212016/05/07(土) 22:45:50.93ID:???
色とかが適当だけど、とりあえず骨組み
http://www.dotup.org/uploda/www.dotup.org852825.png
007312016/05/08(日) 00:57:34.98ID:???
JQuery UIという物があるみたいですので、それを使ってUI作ってみます
007412016/05/09(月) 00:53:48.86ID:???
タブのダブルクリック更新出来た・・・
土日ずっとしていたからかなり進んだ
0075nobodyさん2016/05/09(月) 07:30:48.17ID:???
>>1
だからSPAにしろって
今から覚えるならJQueryよりおすすめ
HTMLのView地獄の深みにハマってつらい思いするぞ
007612016/05/09(月) 07:41:01.66ID:???
>>75
ユーザー登録、会員情報の変更以外(つまりよく使う機能)はJQ UI+シングルページで作っています
007712016/05/09(月) 23:27:19.16ID:???
ローカル変数とグローバル関数名の衝突駄目なのか…
$$から始まる関数をJQオブジェクト作成関数にして、$始まる変数をJQオブジェクトにします
007812016/05/09(月) 23:45:45.83ID:???
とりあえずソース整理しないと保守が・・・
jsの設計分からん
0079nobodyさん2016/05/10(火) 00:41:45.00ID:???
>ローカル変数とグローバル関数名の衝突駄目なのか…
そうだっけ
どういうコードなんだろう
008012016/05/10(火) 07:50:47.24ID:???
window.$hoge()なら大丈夫みたいですが、$$hogeの方が楽なので
008112016/05/10(火) 21:16:30.20ID:???
会員登録ページ作ったらサーバーにアップロードします
008212016/05/10(火) 23:59:09.03ID:???
テンプレートエンジンっていうの使った方がよさそう
0083nobodyさん2016/05/11(水) 11:02:28.76ID:???
人の話聞く気ないみたいだからもう何も言わないけど
開発の仕方が5年ぐらい前に流行った開発だよね
ggったらよく出てくる内容だから勉強しやすいのかもしれないけど
特に今年は新しい環境が出揃ってこれからっていう元年に近い年だから
そっちに倣ったほうが楽しいと思うんだがな
それじゃ頑張ってくださいノシ
0084nobodyさん2016/05/11(水) 11:35:03.10ID:???
何しに来たんだ
せめて誘導しろや>そっちに倣ったほうが楽しい
008512016/05/11(水) 16:03:56.63ID:???
聞く気無い訳ではないんですが・・・
すみません
今ajaxが流行っていると書いてあったので、ajaxで作ってみました
008612016/05/11(水) 20:04:05.59ID:???
ネットオウルmysqli_stmt::get_result()が出来ない・・・
0087nobodyさん2016/05/12(木) 02:44:05.11ID:???
個人で作るならES2015+babelで作りたいよなぁ
SPA作るならフロントはReact+redux+react-routerで
ビルドはwebpackで十分だし
Angular2に手を出すのもアリだけど
DOM操作なんて人間様のやる事じゃないのでjQueryは必要無し
サーバーサイドPHPにするんならオレオレじゃなくて有名どころのFW使わないとセキュリティ周りで死ぬぞ
0088nobodyさん2016/05/12(木) 03:01:13.65ID:???
てかajax使うなという訳ではないが
流行ってるってどこに書いてあるんだそんなの
0089nobodyさん2016/05/12(木) 10:13:48.26ID:tNg+7L1I
流行ったのは数年前だろ
DOMで皆苦しんだ
0090nobodyさん2016/05/12(木) 10:37:40.79ID:???
最初から完成品目指しているわけでないならとりあえずこのままでいいよ
一度組み上げてこのままじゃだめだよねと確認して次のステップへ行こう
この場につきっきりでコミュニケーション取りながら教えられる人なんていないだろうし
0091nobodyさん2016/05/12(木) 12:12:53.26ID:???
早く確認できるといいですね・・・
0092nobodyさん2016/05/12(木) 13:23:55.76ID:???
初心者にあれこれ言ったって
形から入って完成しないパターンにしかならんしな
とりあえず動くものを用意して反応を貰うのが一番良い
009312016/05/12(木) 15:51:12.71ID:???
今調べたらajaxが流行ったのって数年前だったみたいです…
SPAアプリだと他のライブラリの方が、保守しやすいみたいですので、色々触ってみます
動く物を見せたいのですが、現在サーバーの審査待ちですので、少々お待ち下さい
009412016/05/12(木) 17:05:14.47ID:???
サーバーサイドは
Angular2+TypeScript+css+htmlで作る予定です
009512016/05/12(木) 17:05:51.17ID:???
ミス

クライアントサイドは
Angular2+TypeScript+css+htmlで書き直す予定です
009612016/05/12(木) 17:46:48.88ID:???
やっぱりvue.vsにするかも
0097nobodyさん2016/05/12(木) 18:18:58.09ID:???
jQueryとajaxをごっちゃにしてそうで怖い
009812016/05/12(木) 18:44:34.33ID:???
タブとかダイアログが簡単に作れるので、そこらへんはJQuery UI使います
また、APIでAccess-Control-Allow-Origin: *を出力して、POST通信でも出来るようにします
009912016/05/13(金) 20:11:58.20ID:???
ソースの整理出来そうな気がしてきた
日曜用事あるから、土曜頑張ろう
010012016/05/14(土) 16:33:06.50ID:???
とりあえずVue.jsで作った
かなり分かりやすくなった
010112016/05/14(土) 16:59:04.14ID:???
スクロール量を取得するサンプルはあるんだが、どのレスまで読んだか知る方法ないのかな・・・
各レスに固有IDつけているけど
0102nobodyさん2016/05/14(土) 19:50:02.33ID:???
>>101
Page Visibility API
010312016/05/15(日) 00:55:05.09ID:???
コンポーネントやっと出来た。とりあえず使い方は覚えたはず。。
コンポーネントが出来たから後はアンカー、ID、返信のポップアップだな

>>102
ありがとうございます。してみます
0104nobodyさん2016/05/15(日) 11:08:14.41ID:???
ふつーにajax(というかxhrというべきか?)使ってるが
うちの職場が遅れすぎてるのか?
0105nobodyさん2016/05/15(日) 12:05:15.48ID:???
>>88,89の話か
非同期通信ってどこで流行ってる? → 数年前。DOMで苦しんだ
まるで支離滅裂だ
010612016/05/15(日) 21:53:58.07ID:???
レスアンカーと自信へのレスとID抽出のポップアップ、二次元配列([ポップアップ階層][レス])でバインドすればいいのだろうか?
2chのアンカーポップアップでggっても、バインドの方法は書いてないし、DOM操作のも再帰的なポップアップがない
あと、全部のレス読み込む訳じゃないから、マウスオーバー時にサーバーにリクエストする予定だし
010712016/05/15(日) 22:16:41.02ID:???
いい方法思いついた気がする
010812016/05/16(月) 17:56:15.29ID:???
ポップアップじゃなくてドロップアダウン形式にしました
次は>>102をします
010912016/05/17(火) 19:27:11.65ID:???
var $responseHeaderList = $("#tab" + tab.id + ">.responseList").children(".responseheader");

//スクロール位置
var scroll=$("#tab"+tab.id).scrollTop()+$("#tab"+tab.id+">.responseList").position().top;

//一番近い要素
var $close=$responseHeaderList.first();
//最短距離
var minDistance=Math.abs(scroll-$close.position().top);

//最短距離のオブジェクト取得
$responseHeaderList.each(function () {
//距離取得
var distance=Math.abs(scroll-$(this).position().top);

//今回の方が短ければ
if(minDistance>distance){
$close=$(this);
minDistance=distance;
}

//デパッグ
//$(this).css("color","#555555");
});

tab.scrollResponse=Number($close.data("responseID"));

//デパッグ
//$close.css("color","red");
011012016/05/17(火) 19:28:15.65ID:???
ここまで読んだやっと出来た
0111nobodyさん2016/05/18(水) 10:28:37.26ID:???
どんなシステムになるのか知らんが、Reddit移住が何故失敗したかを考えた方がいい。
011212016/05/19(木) 19:19:04.16ID:ie/BYStV
関数の型チェックにPHP7でしか使えない型を使っているから、PHP5だと動かなくてサーバーがあまりない
まだ7は普及してないし
0113nobodyさん2016/05/19(木) 20:10:55.06ID:???
レンタルサーバーじゃ不自由だしVPSの方がよくない?
011412016/05/19(木) 20:13:58.11ID:???
ラズパイで鯖立てているんだけど、PHP7のインストールが上手くできなくて・・・
011512016/05/19(木) 22:12:27.85ID:???
ラズパイで2chat動いた
あとはポート開放だけなんだけどやり方が分からない
011612016/05/19(木) 22:14:01.00ID:???
ラズパイでもサクサク動いてよかった
ラズパイ3欲しいが今の所は1で問題なさそう
0117nobodyさん2016/05/19(木) 23:14:40.04ID:???
え、自宅サーバで公開するの?
011812016/05/19(木) 23:30:36.95ID:???
とりあえず試しに公開したいので
0119nobodyさん2016/05/19(木) 23:39:49.21ID:???
ポート開放もわからない知識レベルで自宅鯖
狂気の沙汰ほど面白い
0120nobodyさん2016/05/20(金) 00:17:19.01ID:lNAjozeA
Herokuの無料枠とかでいいんじゃね
自宅サーバのセキュリティは正直面倒だ

レンサバでもXServer(と傘下のネットオウル系)やhetemlはPHP7入ってるでしょ
ttps://www.xserver.ne.jp/functions
ttp://www.minibird.jp/service/function.php
ttps://heteml.jp/service/function/
012112016/05/20(金) 07:16:43.70ID:???
ネットオウルは無理(mysqliプリペアの拡張モジュールがない)だったので他のを試してみます
012212016/05/20(金) 18:02:21.87ID:???
Heroku無理だ
MySQL使うのにクレカ登録がいる・・・
012312016/05/20(金) 20:17:09.92ID:???
エックスドメインもget_result使えない・・・
012412016/05/20(金) 20:31:33.97ID:???
15日間しか使えませんが、とりあえず動きました
http://2chat.heteml.jp/
012512016/05/20(金) 20:48:21.19ID:???
mysqlnd使えるところ少なすぎる
0126nobodyさん2016/05/20(金) 22:33:08.79ID:???
まあpdoで組むのが主流だしなあ
0127nobodyさん2016/05/20(金) 22:38:01.89ID:???
http://ja.phptherightway.com
012812016/05/20(金) 22:43:23.03ID:???
>>126
最初mysql関数で組んでいて、PHP7で使えないことに気付いて組みなおしたけど、PDOの方が主流だったのか・・・
0129nobodyさん2016/05/20(金) 22:52:21.60ID:???
その辺のフレームワークだと複数のDBに対応するためにPDO一択ってだけで、パフォーマンスはmysqlndの方が良いとだろうので別に悪くはないと思うよ
013012016/05/21(土) 08:38:48.52ID:???
>>129
MySQL以外を使う予定はないので、このままでいいですかね?

・今後の予定
モバイル版専ブラ
URLを持った、2ch風の閲覧専用ページ
IDポップアップ
013112016/05/21(土) 09:45:57.12ID:???
TSoft Server落ちた
013212016/05/21(土) 10:12:29.63ID:???
http://www.akiyan.com/blog/archives/2011/07/php-mysqli-fetchall.html
これを使えば、mysqlndなしでいけるのだろうか
013312016/05/21(土) 10:37:40.59ID:???
Xdomainサーバーでもいけそうです
ここのサーバーを長期的に使うことになりそうです
013412016/05/21(土) 10:47:06.56ID:???
Xdomain携帯だと広告出るけど、JSONPに広告タグ追加されて、不具合出たりはしないみたい
多分headerで確認しているね
ここなら安心して使える
0135nobodyさん2016/05/21(土) 11:41:42.34ID:???
広告付きのサーバでチャットって流石に貧弱すぎると思うが
まあ万が一負荷が問題になるほど流行ったらよそへ移ればいいか
013612016/05/21(土) 11:47:09.27ID:???
でも×押せばリロードするまで出ないし、SPAだからリロードは少なくて済むから大丈夫と思う
013712016/05/21(土) 11:48:07.69ID:???
広告あってもすぐ負荷大杉画面にリダイレクトするホスティンガー()よりはマシと思うし
0138nobodyさん2016/05/21(土) 15:37:44.53ID:???
>>1
.gitignoreって知ってるか
nbprojectとかいうNetbeansの設定フォルダはバージョン管理の対象から外すといい
0139nobodyさん2016/05/21(土) 15:38:48.65ID:???
あと名前空間とクラスのautoloadとかcomposerくらい使おうや……
0140nobodyさん2016/05/21(土) 15:39:53.51ID:???
せっかくPHP7使ってるのに書き方が5.2あたりで止まってるぞ
0141nobodyさん2016/05/21(土) 15:48:22.45ID:???
失礼、名前空間は使ってたか
PSR-4に従っとくと楽だと思うが
0142nobodyさん2016/05/21(土) 16:51:55.65ID:???
イントランスとは一体
014312016/05/21(土) 17:23:25.76ID:???
>>138
外してよかったんですね
外します

>>139
使ったことありませんでした
調べてみます

>>140
スカラー型のタイプヒンティングを使いたかったので、PHP7にしました

>>141
よく分からないので調べてみます

>>142
WEBアプリ(特に永続化が必要な物)のオブジェクト指向ってどう作ればいいんでしょうか?
よく分かりませんでした
0144nobodyさん2016/05/21(土) 17:33:59.54ID:???
PHP the right way読んどけ
PHPはネットにクソ情報が多すぎる
0145nobodyさん2016/05/21(土) 17:41:43.15ID:???
リレーショナルデータベースへの永続化はその辺のORMのライブラリ使えば楽だけどね。このアプリは大して複雑じゃないからActive Record系が手っ取り早い。


勉強がてらなら、オブジェクトの永続化を抽象化するリポジトリパターンを独自で組んでみてもいいのでは。

Threadなどのオブジェクト(エンティティ)は自身の永続化には関知せず、ThreadRepositoryなどリポジトリクラスを作って、DBとのやり取りはそちらのクラスの責務にする。
014612016/05/21(土) 17:49:08.01ID:???
>>144
初めて見ました
読んでみます

>>145
DBの処理と分ければいいんですね
>>144を読み終えたらしてみます
0147nobodyさん2016/05/21(土) 17:55:17.02ID:???
なお永続化は特にWebアプリに限ったもんじゃない
大抵のWebアプリに永続化が必要ではあるが


Webアプリで真っ当なオブジェクト指向って時に特有なのはHTTPリクエストとHTTPレスポンスをオブジェクトとして扱うことだろうな。

大雑把に言うとアプリケーション全体をHTTPリクエストを引数にとってHTTPレスポンスを返す関数として捉える

PHP界隈だとHTTPリクエストとレスポンスのライブラリが標準にないため、フレームワークごとに乱立していた感じ
最近ようやくPSR-7 HTTP messagesという標準になってくれそうなインターフェースが決まって広まりつつある
0148nobodyさん2016/05/21(土) 18:07:09.53ID:???
アプリケーションの立ち上げ処理を共通化するためのフロントコントローラパターン、URLなどリクエストに応じて処理を振り分けるルータ、までがWebフレームワークの必要最低限かな
MVC2などによる構造の切り分けも大体のフレームワークが行っている

DBへの永続化、ユーザー認証認可、テンプレートエンジンなどの他の頻出機能は好きなライブラリやコンポーネントを組み合わせやすい便利な時代になった
Composer様々だな
014912016/05/21(土) 18:09:12.44ID:???
普通のアプリの永続化は、オブジェクトに様々な処理をして、終了時などに保存ですが、WEBアプリは処理が少ないので考え方が分からないんですよね
あと、デスクトップアプリでも、ファイルを全て読み込んで、オブジェクトに変換して、処理をして、保存といったアプリしか作った事がないので一部のみ読み込んで的なアプリがよく分かりません
015012016/05/21(土) 18:17:39.96ID:???
IOS絵文字を削除とかしていないのに、自動で削除される・・・
0151nobodyさん2016/05/21(土) 18:18:52.72ID:???
DB使ったアプリを作ったことがないだけでは

>>1の普通がどこの普通かは知らんが普通のデスクトップのアプリでもDB使うなら逐一DB更新することあるでしょ
0152nobodyさん2016/05/21(土) 18:42:14.46ID:???
いきなり色々言われて>>1のモチベが下がらないか心配
composer対応とかは後回しにしてとりあえず形にしちゃった方がいいと思う
0153nobodyさん2016/05/21(土) 19:17:03.07ID:???
まあ動くのが正義だしな
しっかり設計されてると保守・機能追加のしやすさはかなり変わるから徐々に改善していけばいい
015412016/05/21(土) 21:41:26.34ID:???
PHP the right wayを軽く読んでみました
何か分かったような分からなかったような・・・
015512016/05/21(土) 22:09:48.10ID:???
とりあえずサーバーサイドと、クライアントサイドは分離した方がよさそう
js開発をnbでするのは辛い
015612016/05/21(土) 22:13:21.64ID:???
TypeScript採用したほうがいいのかな
015712016/05/21(土) 22:22:25.99ID:???
Todo
>>130
autoloading
コーティング規約の統一
リポジトリパターンの採用
一部Unicode文字が使えない問題
スレッド取得APIの強化
スレタイ/全文検索
TypeScriptへの移植(未定)
TypeScriptでHTTPリクエストを隠蔽する薄いラッパーライブラリの作成(↑をするならこっちも作る)
015812016/05/22(日) 13:16:47.71ID:???
オートロード関数ってこんな感じでしょうか?
spl_autoload_register(function($name) {
//nicht\で始まるなら
if (strpos($name, "nichat\\") === 0) {
//クラス名→パス取得
//"nichat\"を削除し、\をパス区切り文字に置き換え
//最後に絶対パス化し、".php"をつける
$path = dirname(__FILE__) . str_replace("\\", DIRECTORY_SEPARATOR, substr($name, 7)) . ".php";

//読み込み
include $path;
}
});
0159nobodyさん2016/05/22(日) 13:47:35.56ID:???
こういのは技術の話よりサービスのアイデアが重要なんだが、
技術の話ばっかりなのは仕方ないか・・
016012016/05/22(日) 14:09:27.45ID:???
>>159
確かに利用者にとっては、内部がどうなっているかは関係なく、使いやすい物が出来ればそれでいいのですが、PHPを正しく学習したいと考えています
016112016/05/22(日) 14:14:29.02ID:???
PSR-4をざっくり読んでみました
多分今作っているオートローダーの仕様で大丈夫と思います・・・
016212016/05/22(日) 14:16:52.13ID:???
>>157に追記
レス取得APIに自分の書き込みかを知るフラグの追加
016312016/05/22(日) 15:50:41.18ID:???
nbってphp7に対応していないみたい
バージョン選択から選べないし
(function(){})();がエラーになって面倒
016412016/05/22(日) 17:23:23.90ID:???
【Todo】
*サーバー
リポジトリパターンの採用
一部Unicode文字が使えない問題
スレッド取得APIの強化
コーティング規約の統一
IDポップアップ
スレタイ/全文検索

*クライアント
モバイル版専ブラ
URLを持った、2ch風の閲覧専用ページ
TypeScriptへの移植(未定)
TypeScriptでHTTPリクエストを隠蔽する薄いラッパーライブラリの作成(↑をするならこっちも作る)
コーティング規約の統一
IDポップアップ
スレタイ/全文検索
016512016/05/22(日) 17:29:08.44ID:???
レスの取得は簡単だけど、スレはスレッドフロート式だから難しいんだよね・・・
1〜20件取得→一番下までスクロール→21〜40取得とかだと取得出来ないレスがあったり重複したりするし
016612016/05/22(日) 17:29:43.64ID:???
1〜20件取得→1〜40件取得→1〜60件取得みたいに取得しなおすのがいいのだろうか?
0167nobodyさん2016/05/22(日) 18:27:48.14ID:???
内部で各スレにインクリメンタルなIDを振ればいいだけじゃねぇのか?
0168nobodyさん2016/05/22(日) 18:30:58.77ID:???
最初の20件取得、でその取得したIDの最大値が次へのセットへのカーソル。
カーソルの最大値以降の次の20件を取得。
以下ループ。
0169nobodyさん2016/05/22(日) 18:31:36.55ID:???
ごめん。レスじゃなくてスレの話か・・
017012016/05/22(日) 18:36:23.01ID:???
レスは順番変わらないからそれでいいんだけど
仕方ないからreadThreadPageを消して、searchThread追加した
あとsearchThreadにスレタイ検索も組み込んだ
017112016/05/22(日) 18:39:41.93ID:???
とりあえずサーバーサイドはしっかり作り込みたい
クライアントサイドはバグあっても(ないほうがいいけど)脆弱性には繋がらないけど、サーバーサイドは下手したら大変な事になる
DB流出してもパスワードとトリップはハッシュ化しているから分からないけど、誰が書き込んだかは分かるからね
017212016/05/22(日) 18:47:15.63ID:???
ページ切り替えで順番変わるのってよく考えたら検索エンジンと同じだな
Googleとかはどういう仕組み使っているんだろう
017312016/05/22(日) 18:51:58.75ID:???
いい加減用語統一しないとな・・・
2chで言うID→ハッシュ
2chでいう>>n→リプライ
連番ID→ID
文字列ID→スクリーンネーム
でいいか
017412016/05/22(日) 22:18:01.77ID:???
*サーバー
>リポジトリパターンの採用
core内クラスで、そこまで複雑な事をしておらず、ほとんどDB操作だけど、分割するべきなのか

>一部Unicode文字が使えない問題
php.iniの文字コード変えれば大丈夫らしい

>スレッド取得APIの強化
強化ではなくなったが、改善した

>コーティング規約の統一
作業中

>IDポップアップ
完了

>スレタイ/全文検索
スレタイ検索は完了

TODOにはなかったけど、Response取得系で、認証を行うことで自分の書き込みであるかを知ることのできるフラグを追加した
017512016/05/22(日) 23:41:55.28ID:???
ToDo追記

*サーバーサイド
存在しないレスへのリプライのエラー発生
自信へのリプライの通知
017612016/05/23(月) 00:08:12.74ID:???
mdを使ってToDo作りました
https://github.com/kgtkr/2chat/blob/master/ToDo.md
0177nobodyさん2016/05/23(月) 12:40:15.11ID:???
将来的にはプルリクとか受け付けたりするんかな?
TODO管理とかyoutrackとかteamcity見たいので管理するとええよ
ここで垂れ流ししつつツール上で管理するとやりやすい
0178nobodyさん2016/05/23(月) 16:36:00.31ID:???
知ってるかもしれないけど大まかなサーバの基本設定ね
rootからのログイン不可とSUの作成
パスワードは自動生成系の奴で16文字以上の英数大小ランダム生成
telnetの停止とsshへ変更(鍵使用推奨)
sshの標準接続ポートの変更
可能ならsshログインは特定のIPからのみ許可にした方がいい
使用しないポートはすべて閉じる
※MySQLもローカルからのアクセスだけにした方が楽

家公開ならルーターに設定入れても同じ
017912016/05/23(月) 17:35:50.91ID:???
>>177
プルリクエストって共同開発の機能ですかね?
今までOSDNでしていたのでいまいち分からないのですが、今でも大歓迎です
018012016/05/23(月) 17:42:13.01ID:???
でも今の状態だと迷惑掛けそう・・・
018112016/05/23(月) 19:23:52.22ID:???
angular2って単純に読み込むだけじゃないのか?
ダウンロードしたいだけ(もしくは、JQueryみたいにweb上から読み込みたい)なのに、パッケージマネージャーが何かとか出てくるんだが
018212016/05/23(月) 19:27:04.99ID:???
angular2ってNode.js用なのか?
018312016/05/23(月) 19:35:04.99ID:???
これサーバーサイドと連携して動くみたい
node.js、rubyと別に解説あっていたし
vue.jsでいいか
018412016/05/23(月) 19:38:45.70ID:???
つまり、angular2はnode.jsFWで、CakePHPと同じようなサーバーサイドの物って事か
APIを自分で作っている今回のプロジェクトには向かないのかな
018512016/05/23(月) 19:41:56.27ID:???
ずっとJQみたいなクライアントの物と思っていた
0186nobodyさん2016/05/23(月) 20:06:51.38ID:???
いや、前の理解で合ってるから
angular.jsはvue.jsと同じ位置

クライアント側でもbrowserifyなどを使えばサーバ側のnodeと同様のモジュール管理ができるようになってる。
もちろんブラウザで直接モジュールシステムを使えるというわけではなく、
ローカルでnode.jsを動かして本番用のjsファイルをビルドする際にモジュールの依存関係を解決するという方向性
018712016/05/23(月) 20:10:31.45ID:QVAwNuKy
クライアントの物なんですね
簡単にDL出来ればいいのですが。。
でも、この程度の規模だとvueの方がいいですかね?
018812016/05/23(月) 20:18:20.80ID:???
でもtypescriptとの相性はvueよりもいいんですよね
0189nobodyさん2016/05/23(月) 20:28:33.89ID:???
angular2は時期が悪いからやめとけTypeScriptも無理して使うことはない
0190nobodyさん2016/05/23(月) 20:29:50.49ID:???
Angular2は今RCだけどどうせ破壊的変更入れてくるに決まってる
0191nobodyさん2016/05/23(月) 22:38:24.98ID:jeHk4Nuo
ほとんどコピペでangular2使って問題webアプリ作ってみたけどめっちゃしんどかったよ
つかjsコードそのままだと7MBとかいくし、minify?しても1.2MBでgzipで300KBぐらいまでしか落ちない
そもそもフロントのangularjsとかさえ触ったことないwebの仕組みもよく知らない初心者やが

https://github.com/himanannyaga/angular2-express-mongo-quiz/tree/master/client/app/ts
demo http://128.199.129.51/
019212016/05/23(月) 23:13:37.86ID:???
そんなに長いのか
何か新しいjsでclass構文とか使えるらしいからvue+生jsでいいか
0193nobodyさん2016/05/24(火) 07:39:36.65ID:???
勘違いだった
sourcemap(デバッグするためのファイル)ない状態で4MBぐらい
それにしてもでかすぎるが
019412016/05/24(火) 18:39:31.23ID:???
4MBでも十分でかい・・・
1024^2*4文字ってどれだけ大きなライブラリなんだ・・・
それより、VSってJSのDoc補充出来ないのかな
JS用IDE何使おう
019512016/05/24(火) 19:01:11.96ID:???
jsもnbでいいか
0196nobodyさん2016/05/25(水) 07:24:48.90ID:???
NetBeansも悪かないけど
個人的にはphpstorm
このプロジェクト自体オープンソースとしてやっていくのであれば
申請すれば無料で使うことができるよ
0197nobodyさん2016/05/25(水) 12:56:20.61ID:???
http://daily.2ch. net/test/read.cgi/newsplus/1464143234/
チャンスじゃね。
019812016/05/25(水) 16:29:52.95ID:???
>>196
OSなら無料で使えたのか
学生でも無料で使えるのは知っていたけど、申請面倒(国際何とか学生証?的な奴)だったからやめていたけど、ちょっと調べてみる

>>197
ひろゆき時代の2chは知らないけどどうなるんだろう
019912016/05/25(水) 16:31:47.42ID:???
3ヵ月以上続いていないと駄目らしい
0200nobodyさん2016/05/25(水) 20:52:21.46ID:???
かつコミッタもそれなりにいないとダメだった気がする
020112016/05/25(水) 21:01:21.48ID:DDgGmThD
なら無理だ
とりあえずnbで進めよう
今ライブラリ作成中
020212016/05/25(水) 21:32:34.96ID:???
ライブラリは薄いラッパーだけ出来た
ただJSDocの仕様はどこが正しいのか分からん
乱立している感じなのだろか?
020312016/05/25(水) 22:30:44.77ID:???
ライブラリコミットしました
020412016/05/26(木) 19:04:37.67ID:???
大改造したらエラーの山で泣きそう
020512016/05/26(木) 19:07:58.80ID:???
しかも90%以上のエラーが、コンパイル式静的言語ならコンパイル時に分かるエラー・・・
本当動的インプリンタ言語嫌い
0206nobodyさん2016/05/26(木) 19:25:28.08ID:???
>>205
TypeScriptでも使ったら?
0207nobodyさん2016/05/26(木) 19:33:43.03ID:???
なぜPHPにしたのか
020812016/05/26(木) 19:52:38.27ID:???
>>206
クライアントサイドは別にそこまでエラーない
問題はサーバーサイド

>>207
対応サーバー多いから
0209nobodyさん2016/05/26(木) 19:59:33.02ID:???
2ch越えるってんなら設定自由にいじれるサーバ使うだろうし好きな言語でよくね?
巨大掲示板群を作るのではなくOSS配布が目的なの?
0210nobodyさん2016/05/26(木) 20:10:55.24ID:???
1番の目的はWebサービスの開発経験を積むことです。
021112016/05/26(木) 23:07:33.49ID:???
>>209
とりあえず今回はPHPで作ってみます
サーバーサイドはクライアントサイドに比べるとあまり複雑ではないので、移植しようと思えば結構すぐ出来そうですし

>>210
一番ではないですが、それもありますね
0212nobodyさん2016/05/27(金) 11:47:01.69ID:???
PHPってバージョン7ではセキュリティもパフォーマンスも
だいぶ上がってるみたいだし、オンラインヘルプ充実してるし俺は良いと思うけど
Node.jsなんかは作りやすいものなのか?
0213nobodyさん2016/05/27(金) 12:15:09.23ID:???
なんでコンパイル時に型のエラーを検出できる静的型付言語にしなかったのかという話なのにnode.jsなんだ

nodeよりはタイプヒントつけられるPHPのほうがマシ
PHP7.1でプロパティの型も入りそうだし
0214nobodyさん2016/05/27(金) 12:44:59.76ID:???
そもそも静的型付けが必要なプログラマーって実力がないからなのかな
注意力がないというか
0215nobodyさん2016/05/27(金) 13:01:35.98ID:???
静的のメリットはよくわかるけど
動的のせいにするような人は静的でもあまり…
0216nobodyさん2016/05/28(土) 00:15:16.67ID:AXBYWEwi
実力とか必要の問題じゃなく保守管理性の問題だと思うんですけど
0217nobodyさん2016/05/28(土) 00:18:18.29ID:???
人間はミスをする生き物だから機械的に保証するべきだよ
0218nobodyさん2016/05/28(土) 00:24:09.68ID:???
ま、技術的にいくら優れてようが2chに勝てないわけだが
0219nobodyさん2016/05/28(土) 01:12:32.12ID:???
イントランスってなんだインスタンスだろ
022012016/05/28(土) 09:48:33.10ID:???
俺と同じ間違え方している人いたのか
先月までイントランスってずっと読んでた
022112016/05/28(土) 10:23:30.26ID:???
PHPってint同士の除算でもdoubleになるのか・・・
めっちゃ混乱した
022212016/05/28(土) 10:50:33.77ID:???
VIPみたいな単発メインの掲示板にはしたくないんだよな
とりあえず、ユーザー登録とスレ建てにはキャプチャ認証つけたよう
022312016/05/28(土) 10:50:50.51ID:???
×つけたよう
○つけよう
022412016/05/28(土) 10:53:46.94ID:???
API形式にしたいから、BDにキャプチャIDと、非公開のランダム文字列を登録して、Image.phpかなんかにgetでID渡させて、画像表示すればいいか
022512016/05/28(土) 10:58:06.59ID:???
画像合成は昔PHPで作った経験ある
022612016/05/28(土) 13:53:54.23ID:???
登録時の画像認証出来た
スレ建て時の認証はいいや
本番稼働時はかなり厳しい制限する予定だし
022712016/05/28(土) 14:38:38.31ID:???
サーバーのお試し期間があと1週間だ
022812016/05/28(土) 23:09:27.15ID:???
この単一ファイルコンポーネントってnode.jsじゃないと出来ないのかな
javaScriptはNodeの事言っているのか、クライントの言っているのか分からない解説が多い気がする
http://qiita.com/ayasuda/items/92221229e8f8c65c6f7c
022912016/05/28(土) 23:15:02.03ID:???
JQueryから逃げたいんだけど、JQuery UIみたいなVue.js UIみたいなライブラリってないかな・・・
0230nobodyさん2016/05/28(土) 23:18:41.67ID:???
>>228
node上のツールでコンパイルしてブラウザ用ファイルを吐き出すってだけだぞ
023112016/05/28(土) 23:28:02.40ID:???
最近のjsってnodeと連携している感じなの?
nodeはphpとかperlとかrubyみたいな事をする言語と思っていたんだが違うのだろうか
023212016/05/28(土) 23:30:02.90ID:???
単純に使いたいだけなのにnodeとかnpmとか色々ありすぎて・・・
デスクトップアプリは単一言語で開発(WPFとかはあるけど・・・)出来て楽だったけどWEBは言語多いし難しい
0233nobodyさん2016/05/28(土) 23:46:18.76ID:???
javascriptをどこで実行するか、それがブラウザとNode.jsの違い
ブラウザ上はご存知の通りDOMやそれに関連した操作を行うためのもので制限も多いが、これが基本
そのためのライブラリがJQueryとかAngular.jsとかVue.jsとか

javascriptをブラウザ以外でも使えるようにしたのがNode.js
ブラウザ上ではないので他の言語と同じようにほぼ自由になんでも出来る
パッケージマネージャとしてnpm、タスクランナーとしてgulpなど様々なツールがある

大雑把な理解はこんな感じ
0234nobodyさん2016/05/28(土) 23:55:30.99ID:???
Javascriptは言語、Node.jsは実行環境
PerlやPHPなどは言語 = 実行環境みたいなものだから混乱しやすいね
一応C#もC#という言語と.NETという実行環境な感じで分かれてなかったっけよくしらんけど
0235nobodyさん2016/05/29(日) 03:25:55.75ID:???
クライアントサイドはjavascript一択だからわかりやすいけど
サーバーサイドって何を使うか迷うね

クライアントとサーバーで共通の言語使えるのが一番楽だけど
Node.jsってPHPなんかに比べてサーバーアプリ作りやすいのかな?

しかも投資効率ということを考えると、RubyやPythonの方が将来性あるのかとか
いろいろ迷うね
023612016/05/29(日) 22:23:37.62ID:???
>>234
.NETと同じような物か
納得した

あと、JQueryから逃げるために、頑張って自力でタブ作った
次はモーダルウィンドウ
023712016/05/29(日) 23:33:03.85ID:???
モーダルウィンドウ中央表示以外は出来た
中央表示は分からん・・・
これでJQuery UIからは逃げられたから、あとはJQueryから逃げればいい
0238nobodyさん2016/05/30(月) 08:38:42.12ID:???
なんで逃げたいんだ?
0239nobodyさん2016/05/30(月) 13:04:08.11ID:???
>>238
俺もそれ知りたい
技術的な理由があるならぜひ教えて欲しい >>1
0240nobodyさん2016/05/30(月) 13:45:49.40ID:???
むしろSPAでなんで逃げたくないんだ
024112016/05/30(月) 18:11:10.84ID:???
使っていてJQueryとVue.jsは相性悪いと思ったから
024212016/05/30(月) 18:29:27.79ID:???
あとサーバー5日だ・・・
024312016/05/30(月) 18:48:42.47ID:???
マークダウンみたいな修飾タグ実装したいな
2chのソース貼り付けしにくいし
あと&ってエスケープしないと本当に危険なんだろうか?
024412016/05/30(月) 18:52:14.27ID:???
やっぱり危ないらしいな
http://shimax.cocolog-nifty.com/search/2007/12/php_f864.html

UTF-8だからとりあえずはいいか
024512016/05/30(月) 18:57:35.57ID:???
今気づいたんだが、$noコマンドいらなくね
$の前に半角スペース入れれば全く同じ動作する
024612016/05/30(月) 23:32:46.98ID:???
そういえば、Vueイントランスの作成を、el:bodyを指定して全体に適用させているんだけど、個別に分割したほうがいいのだろうか?
0247nobodyさん2016/05/31(火) 08:50:59.54ID:???
イントランスとは
0248nobodyさん2016/05/31(火) 09:06:57.79ID:???
インスタンス?
024912016/05/31(火) 17:28:24.29ID:???
また間違った
恥ずかしい
インスタンス
0250nobodyさん2016/06/01(水) 09:32:20.94ID:???
実は足腰の弱いプログラマ−?
025112016/06/01(水) 16:22:37.91ID:???
>>250
プログラマじゃなくて学生
まだ勉強初めて1年半くらいだから・・・
0252nobodyさん2016/06/01(水) 18:56:45.44ID:???
autoloadの設定は初期化処理のファイルで一回すれば十分だぞ
ファイルごととか見たことない
025312016/06/01(水) 19:19:03.50ID:???
>>252
include_onceなので1回しか読み込まれないはずですが、やめた方がいいんですか?
0254nobodyさん2016/06/01(水) 19:56:17.53ID:???
すべてのクラスファイルがautoloaderのファイルパスに依存するとか最悪にメンテナンス性悪いでしょ
エントリポイントとなるファイルで読みこめば充分

一回他のフレームワークのコードとか覗いてみたら
0255nobodyさん2016/06/01(水) 21:56:51.28ID:zrVe8lVb
staticおじさん
025612016/06/03(金) 18:24:58.53ID:???
今日でサーバーのお試し終了
まだ問題点が改善できていないから、まだ新しいサーバーにはアップしない
025712016/06/03(金) 19:12:37.92ID:???
もう少しで考査始まるので更新少なくなるかもしれません
0258nobodyさん2016/06/03(金) 21:36:52.56ID:???
設定用のクラスにパスワードやソルトをハードコードしてるの正直どうかと思う
dotenvとか使えば?
025912016/06/03(金) 23:25:16.83ID:???
>>258
確かにgitで間違ってコミットしてしまったりすると怖いですね
ただ、今クライアント側を作っているので待って下さい


any型を使えばtsとvueを上手く使えそうな気がしたのでts使ってみます
026012016/06/04(土) 09:31:53.27ID:???
ts凄い
026112016/06/07(火) 18:54:38.94ID:???
モチベ下がってきたからしばらく開発休むかも
しばらくSTGの開発休んでいたけど、モチベ戻ってきたし
026212016/06/07(火) 18:57:40.62ID:???
基本的に3つくらいのプロジェクトをローテーション(1ヵ月〜1ヵ月半くらい)で開発しているので、たまに長期間消えますが、プロジェクトが中止した訳ではありませんので
一つを続けてやると、飽きてくるので・・・
0263nobodyさん2016/06/07(火) 18:58:11.44ID:???
予想通り
026412016/06/07(火) 19:10:49.38ID:???
1年くらい続けているプロジェクトをそろそろ完成版リリースしたいし・・・
0265nobodyさん2016/06/08(水) 01:59:58.09ID:???
tsてなに たいむしふと?
0266nobodyさん2016/06/08(水) 08:19:40.65ID:???
TypeScriptじゃね?
026712016/06/08(水) 23:03:42.92ID:???
そうです
TypeScriptです
0268nobodyさん2016/06/09(木) 10:31:19.78ID:???
なるほど
026912016/06/14(火) 18:41:33.80ID:???
ひろゆきが管理人に戻るらしい
JIMは5ch.netを立ち上げるとか
0270nobodyさん2016/06/14(火) 19:22:42.19ID:???
だから、>>197でチャンスっていったじゃん。
027112016/06/18(土) 18:37:15.33ID:pK47OYZ/
とりあえずクライアント頑張ろう
サーバーサイドは行数多いだけで単純だからjavaに書き直すのも思考停止ですぐ出来そうだけど、クライアントサイド作るのはかなり複雑だから大変
0272nobodyさん2016/06/19(日) 22:13:44.26ID:fGhYV3XN
.


■ 2ch認定 スピリチュアル詐欺一覧

 小泉義仁 知井道通
http://karma.2ch.net/test/read.cgi/spiritual/1441832249/
 不道徳連発!冨田佳音のキチガイ スピ活動
http://karma.2ch.net/test/read.cgi/spiritual/1464971384/
 【詐欺師】 スピ 梶岡あん子 【キチガイ】
http://karma.2ch.net/test/read.cgi/spiritual/1466206702/
 【詐欺師】 スピ ミカタカミ 【キチガイ】
http://karma.2ch.net/test/read.cgi/spiritual/1466207813/ 
 詐欺師 岩崎士郎 嘘八百
http://karma.2ch.net/test/read.cgi/spiritual/1451143434/
 ユニフォース・センター 金子浩一
http://karma.2ch.net/test/read.cgi/spiritual/1452973952/


.
027312016/06/20(月) 00:19:47.84ID:y9nVOQ79
jsにもc#のTask型みたいな物があればいいのに
0274nobodyさん2016/06/24(金) 07:48:43.14ID:???
tsでasync/await使ってbabelでさらにトランスパイルすれば
非同期処理を同期っぽくかけるらしいよ。
でも1の場合は素直にコールバック渡して書いたほうが楽なんじゃない
027512016/06/25(土) 00:37:03.13ID:???
>>274
何か難しそう
そういえばjsで非同期処理の排他処理って聞かないけど必要ないの?

webassemblyって言うので、c#が将来的に対応する予定らしい
やっとか
0276nobodyさん2016/06/25(土) 07:44:58.19ID:???
>>275
Promise
027712016/06/25(土) 09:16:41.62ID:BB8bE9je
jsの非同期処理ってマルチスレッドと思ってたけどシングルスレッドだったってマジかよ
027812016/06/25(土) 16:37:52.79ID:BB8bE9je
真面目なシステム作るならjavaの方がいいのだろうか?
0279nobodyさん2016/06/26(日) 08:40:38.25ID:???
1は結局サーバーサイドはphpつかってるんじゃなかったっけ?
それでなんでスレッド数気にするの?
028012016/06/26(日) 09:15:05.73ID:igs77RHp
>>279
jsはクライアントサイド
0281nobodyさん2016/06/26(日) 12:25:34.41ID:???
>>278
今更、JavaAppletに先祖帰りする必要もあるまい
あと、マルチスレッドが本当に必要なのかをよく考えるんだ
http://www.html5rocks.com/ja/tutorials/workers/basics/
028212016/06/26(日) 13:14:25.18ID:rhVzrhMb
>>281
appletは使えないブラウザあるから使わないよ
PHPの代わりにサーブレット使った方がいいのかなと思って
0283nobodyさん2016/06/26(日) 16:49:43.89ID:???
>>282
クライアントサイドJavaScriptがシングルスレッドだった事を懸念していたはずなのに、なぜサーバサイド言語の話になるんだ?
クライアントサイドならWorkerを使え、とアドバイスしてもスルーするし、意味が分からん
028412016/06/26(日) 16:55:28.58ID:rhVzrhMb
すみません
>>277はマルチスレッドにしたいという意味ではなく、jsの非同期処理がシングルスレッドだったことに驚いただけです
0285nobodyさん2016/06/26(日) 22:33:26.55ID:???
>>281
全然関係ないけど
勉強になった
ありがと
028612016/06/27(月) 00:10:56.51ID:UC1mYRg/
目指すのは2chというより匿名Twitterになりそう
人と人が繋がるTwitterとは違って、話題に人が集まるTwitterみたいな
0287nobodyさん2016/06/28(火) 17:15:03.66ID:???
Twitterとかいらないから。
0288nobodyさん2016/06/28(火) 17:15:47.54ID:???
ハッシュタグみたいなクソみたいな仕組みはやめよう。
028912016/06/28(火) 18:22:34.15ID:k2VEgnFH
そこまではしない
2chのシステムにTwitterのUIを組み合わせるみたいな
2chのUI(専ブラじゃないほう)は時代遅れ
029012016/06/29(水) 00:25:59.25ID:???
リポジトリクラス設計メモ
ここではUserクラスを例に使う
core/userパッケージを作って関連クラスを全部突っ込む
Userクラスはパッケージプライベート
Userリポジトリクラスは1スレッド1インスタンスでnew時にconインスタンスを渡す
UserインスタンスはUserリポジトリ経由でしか取得出来ない
0291nobodyさん2016/06/29(水) 00:34:11.12ID:???
DB的にテーブルなんて2,3個しかねぇんだから、UIを除くコアの部分というか
サーバー側なんて2,3週間でできるレベル。
0292nobodyさん2016/06/29(水) 08:46:54.92ID:???
慣れてりゃ2,3日だな
勉強兼ねてリファクタリングしてるんでしょ
029312016/06/29(水) 16:49:53.16ID:TQMsW2Bf
プロプログラマってそんなに早いのか
java使ってて思うんだけど検査例外が…
一回ザッと作った後に例外処理作っていく派なのにコンパイルエラーが
029412016/06/29(水) 16:59:30.59ID:TQMsW2Bf
名称変更
サブパスワード/メインパスワード

サブパスワード/マスターパスワード
0295nobodyさん2016/06/29(水) 18:22:15.51ID:???
>>288
あれ理解しやすくて良いじゃん
029612016/06/29(水) 18:26:18.59ID:TQMsW2Bf
>>295
一つの話題に書き込むから、そもそもハッシュタグの必要性を感じない
2chでハッシュタグいるかって言われたらいらないのと同じ
029712016/06/29(水) 23:44:00.21ID:???
VIPでアイディア募集したり意見聞いたりしてみたら役に立ちそうな情報、意見が結構出た
http://vipper.2ch.net/test/read.cgi/news4vip/1467207439/
http://vipper.2ch.net/test/read.cgi/news4vip/1467114944/

お陰で沈みかけていたモチベも回復
029812016/07/30(土) 17:15:11.85ID:fbGk0XoS
生存報告(作業が進んでいるとは言っていない)
029912016/08/28(日) 17:06:50.32ID:lhHuMh7u
【仕様変更】
・コマンド機能は一般ユーザーには使いにくそうなので出来るだけ廃止
・PC/スマホ等で同期する為に、開いているタブを記憶するAPIを用意する予定でしたが、
それ以外にもNGを記憶したり、その他詳細設定を記憶するAPIも用意しなければいけなくなりそうなので、
WEBStorageのような感覚で使える永続化APIを用意します
030012016/08/28(日) 17:08:56.37ID:???
あとLinux鯖でも頑張ればC#使えるみたいなのでjavaではなく.NET Coreで作ります
030112016/08/28(日) 22:28:37.25ID:???
プロジェクト名を"Nch"に変更します(サービス名ではありません。サービス名はまだ未定)
Number、Next、New、.NETなどのNです
0302nobodyさん2016/08/28(日) 23:01:41.42ID:???
俺も最近PHPとJavaScript勉強し始めておお。一緒だと思ったらなんだよ。
C#にいくのかよ・・
030312016/08/29(月) 00:20:23.54ID:???
>>302
PHPは使い捨てアプリじゃないと無理と言う事が分かったから…
1時間くらいで作る分にはいいんだけどね
0304nobodyさん2016/08/29(月) 14:15:26.44ID:???
.NET Coreなんて使ったらレンタルサーバーじゃ対応してないだろうし、
VPSサービス使わないと運用できねぇじゃん。
0305nobodyさん2016/08/29(月) 14:16:29.25ID:???
というか、名前や形から入り過ぎててワロタ
030612016/08/29(月) 16:36:49.08ID:???
>>304
勿論VPS使うよ
0307nobodyさん2016/08/31(水) 01:45:15.60ID:???
Linuxで、C#? 実績ないだろ

Javaを使え
030812016/08/31(水) 15:52:02.60ID:???
java大嫌いなんだけど
プロパティもないしgetter地獄になるし
APS.NET Coreって実勢ないの?
030912016/08/31(水) 16:04:44.50ID:???
確かにjavaの方が実績は多いだろうけど
日本語情報も
でもあの文法はなー
031012016/08/31(水) 16:05:36.50ID:???
でも安定求めるならjavaの方がいいのだろうか
0311nobodyさん2016/08/31(水) 17:12:49.80ID:???
実績はそりゃ、今年出たばっかだからないだろ。
でも、小さなシステムだし、.NET Coreでいいんじゃね。
逆に、Javaでも、Getter地獄で苦しまんだろ。どうせ作るクラスも少ないだろうし。
なんでもいいじゃね。
031212016/08/31(水) 17:19:32.30ID:???
それより日本語の情報少なすぎてMySQLに接続しようとするだけで4日経った
MySql.Data使おうとしてもできないし
031312016/08/31(水) 17:22:41.52ID:???
確かにjavaの方がいいかもな
情報少なすぎて何もできない
0314nobodyさん2016/08/31(水) 17:28:54.73ID:???
そっか。.NET CoreはDB周りまだ、プロバイダの方はまだとかそんなオチとか。
0315nobodyさん2016/08/31(水) 17:30:38.95ID:???
まぁ、勉強のためもあるんだろうが、小さいシステムなんだから最初から
言語とかにこだわらずに、言語に依存しないWebアプリの作り方とか注意点とか
そういうの学べれば最低限OKだと思うけどな。
031612016/08/31(水) 18:20:32.53ID:???
じゃあやっぱりjavaか…
javaいつになったらプロパティ取り入れる気なんだろ
031712016/08/31(水) 18:52:09.43ID:???
まだリポジトリパターンがいまいち分かってない
0318nobodyさん2016/08/31(水) 23:40:16.15ID:???
ここでNode.jsを勧めてみるテスト
031912016/08/31(水) 23:49:13.93ID:???
Node.jsはいつか覚えたい
javaとかC#の標準APIに比べるとjsって何か足りないんだよな
Nodeは知らないけど
032012016/08/31(水) 23:50:44.60ID:???
Node.jsってsocketが得意なのか
0321nobodyさん2016/09/01(木) 01:07:03.22ID:???
Go, Ruby, Python
032212016/09/01(木) 18:49:35.16ID:???
リポジトリ作り直してどんどんコミットしていくわ
早く作らないとモチベが持たん
032312016/09/01(木) 18:58:08.34ID:???
プロはどうやって開発しているの?このくらいなら3日くらいで終わらせる人いそうだけど
0324nobodyさん2016/09/01(木) 19:01:47.32ID:???
見た感じ飽きっぽさそうだからどうしようもない。
どうせ、もう1個のゲームの方だかも完成してないんでしょ?
032512016/09/01(木) 19:02:57.67ID:???
とりあえず新リポジトリ
https://github.com/kgtkr/nch
032612016/09/01(木) 19:03:47.72ID:???
>>324
まだ完成してない
一個のプロジェクトばかりしてたら飽きてくるし…
こっちは慣れている間に結構進んだけど
032712016/09/01(木) 19:04:04.83ID:???
「離れている間」のミスね
032812016/09/01(木) 19:08:43.45ID:???
まあのんびりと作るか
0329nobodyさん2016/09/01(木) 19:16:27.12ID:???
つか、色々アドバイスしてくれる人は君が離れてる間にどっかいっちゃったしね・・
0330nobodyさん2016/09/01(木) 20:27:30.02ID:???
飽き性でスケジュールも決めない人は向いてないよね
新入社員でも出来る事しかできないコーダー止まりのパターンだ
033112016/09/01(木) 20:36:09.48ID:???
じゃあスケジュールだけでも作るか
033212016/09/01(木) 21:34:15.95ID:???
予定
https://github.com/kgtkr/nch/milestones
033312016/09/01(木) 21:43:11.59ID:???
今日から9月だから9/30までにサーバーサイド終わらせよう
0334nobodyさん2016/09/02(金) 01:33:57.49ID:???
こういうガワだけアピールして結局何にも完成出来ない人間腐る程見て来たから是非頑張ってほしい
口だけじゃなくて
0335nobodyさん2016/09/02(金) 02:40:46.70ID:???
>>323
まず初めに、簡単なチャット機能を作ってみましょうって、言語の本に、よく載っている。
それをコピペすればいいだけ

君は本を読んだことがあるのか?
033612016/09/02(金) 07:48:46.29ID:???
>>334
完成させる気はあるんだけどやっぱり周りから見たらそう見えるよな
頑張るわ

>>335
java本は読んだ事あるけどサーブレットはない
今持ってるのは、java2冊とUnity一冊
033712016/09/02(金) 16:29:06.20ID:???
ThreadをTopicに名前変更(java.lang.Threadと被って面倒なので)
ついでにResponseをResに変更。こっちは単純に短くしたかった
033812016/09/03(土) 00:02:23.49ID:???
・トリップ機能は実装しない予定
代わりに無制限に作れるプロフィール機能を作る

・名前欄の図形
★☆ 管理人等による書き込み
●○ 上記のプロフィール付き書き込み
■□ システムによる書き込み

※以下は今後使う事になる可能性があるので念のため白図形への置き換えを行う
▲△
▼▽
◆◇
??
??
??
??
033912016/09/03(土) 00:03:17.11ID:???
文字化け修正

♠♤
♣♧
♥♡
♦♢
034012016/09/03(土) 00:03:58.56ID:???
ここUnicode未対応鯖か
下4組はトランプ記号です
034112016/09/03(土) 00:13:36.52ID:???
トランプ記号はやっぱりなしで
034212016/09/03(土) 00:27:00.07ID:???
読みやすいコードをパフォーマンスの両立って難しいな
実際に測定した訳ではないけど読みやすさを意識するとDBアクセスがかなり増える
034312016/09/04(日) 14:57:21.86ID:???
javaの1ファイル1クラス制限はenumとか例外とかでかなり面倒
enumも例外も短くて済むから制限しなくてもいいのに
0344nobodyさん2016/09/04(日) 15:21:26.77ID:???
Javaで一番うざいのは、ソースファイルを簡単にフォルダ分けできないのがうざい・・
パッケージ名の階層がフォルダ階層する慣習?がうざいったらありゃしない。
.NETだと、Visual Studioで簡単にソリューションエクスプローラでフォルダ作れば、
自由自在だが。
034512016/09/04(日) 15:25:04.13ID:???
>>344
これもある
名前空間にするほどじゃないけどソース分けたい事とかあるし
コンパイル後のclassファイルだけ1ファイル1クラス、名前空間=フォルダ構造にすれば実行時も困らないだろうに
0346nobodyさん2016/09/04(日) 15:34:52.79ID:???
だな。コンパイル後は、名前空間=フォルダ構造で勝手にしてくれればいいが、
ソースファイルまでそんな扱いにする慣習がうざい。
慣習だから勝手にEclipseとかAndroid Studioがやってるだけで、
ビルド構成をいじくれば、自由自在にできんだけど、めんどくせぇわ。
034712016/09/04(日) 15:39:23.40ID:???
あとチェック例外も
とりあえず作って最後に例外処理したい時とかも、大量の赤ビックリが目障り
0348nobodyさん2016/09/04(日) 15:53:47.02ID:???
ああ。チェック例外か。チェック例外の良し悪しはまだ断定できんな俺。
でも、結構チェック例外いいかもと思ってる。
034912016/09/04(日) 16:00:01.44ID:???
確かに便利な事もある(ドキュメントの例外部分を見落としていた時に教えてくれたり)けど、、
オプションで指定みたいな事は出来ないのだろうか
035012016/09/04(日) 16:21:54.84ID:???
timeAPIが結構便利そう
035112016/09/04(日) 17:26:15.41ID:???
2chって一ヶ月に7000万くらいレスあるのか
035212016/09/04(日) 17:30:30.15ID:???
Twitterは2ch軽く越えてた
035312016/09/04(日) 20:34:53.79ID:???
とりあえずpushした
035412016/09/04(日) 20:36:08.51ID:???
Repositoryパターンが分かって気がする
035512016/09/04(日) 22:10:52.35ID:???
運営はルール違反には関わっても、マナー違反には関わるべきではないと言うのが個人的な考えだから、不愉快な書き込みには低評価をするシステムは取り入れる
違法な内容とか規約違反とかは通報フォームで済ませるけど
035612016/09/04(日) 22:36:32.46ID:???
DMも実装します
035712016/09/04(日) 22:46:52.57ID:???
・メモ
DMのホワイトリストorブラックリストモードはクライアントで実装出来るのでサーバーサイドでは実装しない
なるべくサーバーサイドは小さくする
035812016/09/04(日) 23:07:43.24ID:???
うわっ
APIリストマークダウンで作ったら文字コードが英語専用になってたからデータ吹っ飛んだ
MarkDown#Editorって奴htmlだとutf-8で出力出来るのにmdだと出来ないんだけど
035912016/09/04(日) 23:50:36.87ID:???
実装が必要な機能を整理する為にまとめました
https://github.com/kgtkr/nch/blob/master/api.md
0360nobodyさん2016/09/05(月) 00:16:09.63ID:???
今更だけど、まず1が2ちゃんねるについて理解してるのかが謎なんだよな
0361nobodyさん2016/09/05(月) 09:09:40.30ID:???
そこは別にどうでもいいし、なんとでもなるでしょ
036212016/09/05(月) 15:53:24.15ID:???
「2chについて理解」って例えばどんな事ですか?
ソースを読んだ事はありませんが(perlが分からないので)
036312016/09/05(月) 16:31:50.70ID:???
何かSQLの基本が理解出来ていない気がする
プログラミング言語の感覚だと全く理解できないし
0364nobodyさん2016/09/05(月) 18:27:46.72ID:???
.NETやってたんならLINQ使ってただろ?
036512016/09/05(月) 18:31:51.03ID:???
>>364
javaの方がいいと言われたのでjavaにしました
本当はリンク使いたいですが…
036612016/09/05(月) 18:43:45.84ID:???
あっ読み間違えた

.NETでDBを使ったことはなく、LINQはこれから勉強しようと思っていた所なのでまだ使った事はありません
0367nobodyさん2016/09/05(月) 18:51:49.35ID:???
そっか。基本的な操作ぐらいはすぐ覚えれるだろう。
まぁ、ものにするには、慣れるしかないけど。
俺は昔にOracle(SQL)を触りまくって覚えて、最近、全然データベース触ってないけど、
触りまくったらからなんとか今でもサクッと書ける。そりゃ細かい構文は忘れるけど。
036812016/09/05(月) 18:56:14.95ID:???
本当に基本的な物なら分かるんですが、少し複雑な事をしようとするとどうすればいいか分からなくなるんですよね
入門サイト見ても追加、更新、削除、検索の基本くらいしか載っていないので…
036912016/09/05(月) 18:58:20.34ID:???
Query外部ファイル化面倒だし、だからと言って一行に書くわけにもいかない
メソッドチェーンで文字列を作っていって、toString()でQuery文字列に変換みたいな事出来ないだろうか
037012016/09/05(月) 19:05:59.31ID:???
stream-apiって言うのがjavaにあるらしいがSQLで使う事出来ないのか?
ggっても出てこないんだけど
037112016/09/05(月) 23:03:06.58ID:???
SQL文ってやっぱり外部ファイル化した方がいい?
0372nobodyさん2016/09/05(月) 23:38:28.62ID:???
いや、さすがにそれはしないな・・
0373nobodyさん2016/09/05(月) 23:40:30.37ID:???
ユーザーが変更できるようにそういう目的があるならしてもいいかもしれんが、
SQL分を埋め込まなきゃいけないのは宿命。もしくは、
ORMに逃げる。
0374nobodyさん2016/09/05(月) 23:41:44.09ID:???
というか、そういうクソSQLというかデータへのアクセスを1か所にまとめるために、なんとかパターンとかあるわけで。
リポジトリパターンもそんな感じじゃねぇのかな?
037512016/09/05(月) 23:46:37.63ID:???
別に変更の必要はないんだけど、javaだと1行で書くか、複数行を頑張って書くかしか選択肢ないのが辛い
037612016/09/05(月) 23:48:35.26ID:???
こうやって行ごとに+演算子とリテアル書かないといけないからかなり読みにくいんだよな

"CREATE TABLE topic("
+ "id int NOT NULL PRIMARY KEY AUTO_INCREMENT,"
+ "title text NOT NULL,"
+ "category text NOT NULL,"
+ "text text NOT NULL,"
+ "updatetime datetime NOT NULL,"
+ ""
+ "INDEX(id)"
+ ")"
+ "ENGINE=InnoDB;"
0377nobodyさん2016/09/05(月) 23:53:43.48ID:???
それは、がんばってインデント揃えてスペース入れたりして見やすくするしかないような。
ヒアドキュメントみたいのないんじゃねぇかな。
037812016/09/05(月) 23:55:34.34ID:???
複数行文字列プラグインが消えたのがな…
https://fushihara.org/blog/archives/1657

自作出来ないかな
0379nobodyさん2016/09/06(火) 00:08:45.20ID:???
EclipseのJavaのデフォルトのフォーマッタが邪魔するかもしれんが、
俺は+を後ろにおいて揃えるな。
" CREATE TABLE topic( " +
"  id int NOT NULL PRIMARY KEY AUTO_INCREMENT, " +
"  title text NOT NULL,"
038012016/09/06(火) 00:56:17.95ID:???
>>379
後ろの方が見やすいのかな
前までは後ろ派だったけど前の方が良いって聞いたから前に書くようにしたんだけど…


これさえインストール出来ればいいんだが…
installボタンないからアカウント作ればいいのかと思って作ったけど出てこない
もしかして完全に消えた?何故
https://marketplace.eclipse.org/content/java-multi-line-string-editor
038112016/09/06(火) 22:52:05.68ID:???
ヒアドキュメントを出来るプラグイン探していたら2日潰れた
本当java嫌い
038212016/09/06(火) 23:23:10.96ID:???
仕方ない…とりあえずこのまま頑張るか
038312016/09/06(火) 23:26:54.82ID:???
コピーしたらIDEがエスケープしてくれる機能使って、

/*
ここの元SQL文を書いておく
改行したり
*/
String query="";//←ここに上のコメントの中身をコピー

これなら少しはマシになりそう
雑だけどしばらくはこれで代用するか
ここでプラグイン探したりしていたらモチベ死ぬ自信しかないし
038412016/09/08(木) 17:49:49.04ID:???
TwitterってjavaじゃなくてScalaだったのか
038512016/09/08(木) 20:20:13.73ID:???
3日でScalaに移植しよう
基本クラスの作成は11日までだから間に合うはず
0386nobodyさん2016/09/08(木) 20:23:29.33ID:???
なんかブレブレだけど大丈夫か
038712016/09/08(木) 20:47:43.55ID:???
全然大丈夫じゃない
038812016/09/08(木) 20:49:02.98ID:???
Twitterはjavaで出来ていると思っていたけど、Scalaだと言う事を知ってScalaの方がいいのかなと思って
JVMは好きだけどjavaは嫌いだからScala覚えた方がいいのかなと
038912016/09/08(木) 20:58:31.43ID:???
何かかなり複雑な言語っぽいな
使いこなせたら強力な武器になりそうだけど
0390nobodyさん2016/09/08(木) 21:08:27.74ID:???
目的見失いすぎワロタ
039112016/09/08(木) 21:12:13.43ID:???
javaerがScalaerに3日でなれるのだろうか
039212016/09/08(木) 21:21:52.20ID:???
Scara入れたらエクリプスが異常に重くなった
0393nobodyさん2016/09/08(木) 22:06:08.52ID:???
5ヵ月目で出来たものは結局20年前からある会員制BBSの劣化β版か…
一生完成しないパターンだから見限るわ
0394nobodyさん2016/09/08(木) 22:06:42.58ID:???
典型的な完璧主義者だな。
度を超すと、物事完成させれなくなるよ。
シューティングゲームの方は完璧主義がたたって壁にぶつかったんじゃないの??
それでこっち逃げてきたとか。
039512016/09/08(木) 22:07:24.97ID:???
STGはそんなにぶれていない
こっちはブレブレだけど
039612016/09/08(木) 22:12:01.54ID:???
もう5ヵ月か…
PHP→javaよりはjavq→Scalaの方が楽だろうけど
039712016/09/08(木) 23:00:15.26ID:???
思ってたよりjava→scalaの移植簡単だ
039812016/09/08(木) 23:11:20.13ID:???
Scalaらしさとか追及していたら時間掛かりすぎてモチベ死ぬだろうから、そういうのは全く考えずにとりあえず移植する
0399nobodyさん2016/09/09(金) 13:43:10.78ID:???
>>394
作り方に拘って完成に辿り着けないタイプだよね
Twitterのブランド力に影響されてるところからミーハーでもあるけど
ここで「GoogleはPythonを使っているらしい」と指摘したらまた言語を変えて作り始めそう
040012016/09/09(金) 17:36:59.04ID:???
動的言語は苦手だからそれはないと思う
0401nobodyさん2016/09/09(金) 18:54:09.26ID:???
動的言語が苦手ならなぜPHPで作り始めたのか
JavaScriptも苦手っぽいけど、今時静的言語だけで頑張るのは厳しい
0402nobodyさん2016/09/09(金) 18:58:04.81ID:???
Pythonが動的言語かいなかをいいたいんじゃなくて、あくまでPythonは例で、
君の性格について言及するに引き合いにだしただけなのに、
動的言語は苦手だからとか見当はずれなレスして読解力もないのか・・
040312016/09/09(金) 19:00:04.29ID:???
最初からPHPとjavaには不満あったけど、Scalaは結構合いそうだからこのまま進める
0404nobodyさん2016/09/09(金) 19:01:41.17ID:???
Scalaは趣味ではいいけど、仕事の求人数的には役立たずじゃね。
040512016/09/09(金) 19:29:45.30ID:???
>>404
これ趣味だし、好きな言語使いたい
これから普及する可能性もあるし
040612016/09/09(金) 19:31:06.21ID:???
PHPが動的言語と静的言語のデメリットをとった言語なら、Scalaは両方のメリットをとった言語だと思う
0407nobodyさん2016/09/09(金) 23:15:11.36ID:???
javaの上でscala動かすの?
0408nobodyさん2016/09/09(金) 23:20:55.70ID:???
あ?PHPバカにすんなよ
040912016/09/09(金) 23:35:12.40ID:???
>>407
.NET Framework上で動く言語にC#とかVB.NETがあるのと同じで、
JVM上で動く言語にjavaとかScalaがある
0410nobodyさん2016/09/09(金) 23:51:36.80ID:???
疑問が二つ。
このスレに書き込むかは正直どうでもいいのでちゃんと開発し続けているのか
1についていく人間が果たしてどれだけ居るのか
041112016/09/09(金) 23:53:26.31ID:???
今の状態ではついてくる人がいないのは分かっている
ただ開発は続いている
0412nobodyさん2016/09/09(金) 23:54:22.68ID:???
静的型付け言語を
041312016/09/10(土) 00:31:58.25ID:???
明日頑張れば移植終わりそう
TODOは明日までにクラス作って、明後日からDBだから予定変更いらないかも
これ異常予定変更したくないし
041412016/09/10(土) 10:32:12.31ID:???
ソース半分以下になったりするからかなり便利
041512016/09/10(土) 13:50:28.68ID:???
移植完了
041612016/09/10(土) 13:50:52.92ID:???
間に合ったので予定変更せずに進めます
0417nobodyさん2016/09/10(土) 14:41:15.95ID:???
1の予定ではいつ完成するのだろうか
041812016/09/10(土) 16:09:33.38ID:???
>>417
https://github.com/kgtkr/nch/blob/master/todo.md
041912016/09/10(土) 16:09:52.20ID:???
今日までと思っていたら明日までだった
0420nobodyさん2016/09/10(土) 18:27:08.85ID:???
>>418
サーバのToDoしかないようだが…
全て完成するのはいつ?
042112016/09/10(土) 18:51:52.86ID:???
>>420
クライアント側はまだ仕様がしっかり決まってないから分からない
APIの薄いラッパーは1週間くらい
クライアントアプリはサーバーより時間掛かるかも
0422nobodyさん2016/09/11(日) 15:34:42.06ID:???
APIの仕様出たらオレもクライアントアプリ作るよ、ブラウザ使わないやつ
042312016/09/11(日) 17:38:08.69ID:???
>>422
安定して来たらAPIの仕様はドキュメント化します
ドキュメント化する前も一応使えますが、仕様が大幅に変わる可能性もあります
042412016/09/11(日) 17:40:09.81ID:???
ResRepositoryとTopicHistoryRepositoryが終わりました
Scalaの開発効率凄い
0425nobodyさん2016/09/11(日) 17:59:23.75ID:???
まだ、サーバー公開してるわけじゃにし、外部の者が
開発はめんどくさいだろ。
042612016/09/11(日) 18:08:35.24ID:???
サーバーはさくらのVPS借りる予定です
ドメインは一個とってサブドメインにします
042712016/09/11(日) 18:10:40.90ID:???
まだ鯖どころか、スクリプトも完成していないのでクライアント開発は無理ですね
042812016/09/11(日) 18:22:24.69ID:???
2Gプランが1700円くらいか
広告貼って月1000円くらい入ればいいんだが…1700円全額は確実に金なくなる
VIPみたいな書き込みが多くなると、Googleアドセンスは確実にBANされるだろうしどうしようかな
0429nobodyさん2016/09/11(日) 18:38:25.71ID:???
PHPなら無料レンサバで様子みながら、ユーザーが増えて成功しそうなら、
有料に移行できるのになww
まぁ、最初から金を払わざるを得なくて君の本気度が試される。
無料のVPSとかあるのか知らんが。
0430nobodyさん2016/09/11(日) 18:42:13.11ID:???
もう、明日にでもさくらのVPSだかしらんがどこでもいいから契約しろって。
で、自分を窮地に追い込めば、モチベーションも長続きするんじゃね??
043112016/09/11(日) 21:22:32.53ID:???
>>429
PHP→java→Scalaにしてよかったと思ってるよ
かなり開発期間伸びたけど

>>430
それは流石に…


TopicRepositoryとTopicHistoryRepository終わりました
043212016/09/11(日) 21:23:02.14ID:???
TopicHistoryRepositoryは既に言ってた
043312016/09/11(日) 21:48:43.30ID:???
DM機能いらないなこれ
オープンな掲示板にしたいのにクローズな物作るのは違う気がする
要望多ければ後からつけ足せばいいし
043412016/09/11(日) 22:59:01.49ID:???
今日一日作業したらかなり進んだ
043512016/09/11(日) 23:42:21.28ID:???
UserRepository以外のリポジトリは終わりました
UserRは遅いので明日します
GitにPushしました
0436nobodyさん2016/09/12(月) 11:54:05.08ID:???
2chの仕組みとか名前とか入れてるみたいだけど
サーバから2chへのアクセスは無いんだよね?
sakuraのサーバからは2ch一切読みに行けないんで念のため
0437nobodyさん2016/09/12(月) 15:25:23.87ID:???
完全に別のサービスだと思うのにそれはないとおもう。
0438nobodyさん2016/09/12(月) 15:50:38.09ID:???
まあ借りたついでに proxy2ch 置く、とかやらなきゃ問題ないかw
043912016/09/12(月) 17:00:44.99ID:???
scがsakura使ってるからだよね
2chにアクセスする事はないからそれは大丈夫
044012016/09/12(月) 18:40:43.96ID:???
Repositoryクラスが一通り完成しました
エラー処理が終わっていないのでそこを進めていきます
044112016/09/12(月) 18:48:55.02ID:???
現在の設計では1書き込みでかなりDBアクセスをしなければならず、パフォーマンスに問題が発生する可能性が高いです
ただ、実際に動かしながらでも修正出来る部分なので、今はとりあえずこのまま完成させます
044212016/09/12(月) 22:14:59.61ID:???
エラーチェックはユーザーの入力判定を優先して行っていきます(ServerException以外の物)
}
0443nobodyさん2016/09/12(月) 22:18:42.76ID:???
ソース見ていろいろ突っ込みたいところだが、Scalaシラネ。

>パフォーマンスに問題が発生する可能性が高いです
>ただ、実際に動かしながらでも修正出来る部分なので、今はとりあえずこのまま完成させます
だね。どんどん進むべきだな。
でも、やっぱ、ミーハーな君は最終的にはNoSQLとかになるのかな??
俺もNoSQLよくわかってないけどw
0444nobodyさん2016/09/13(火) 05:22:51.06ID:???
リレーショナルじゃないデービーって巨大なテキストファイルと違うの?
0445nobodyさん2016/09/13(火) 11:00:54.20ID:???
どっちかっつーとハッシュ
って環境によって呼び名が変わるけど連想配列とかディクショナリーとかね
0446nobodyさん2016/09/13(火) 11:02:25.19ID:???
ちなみにDBでパフォーマンスが問題になるほどの規模には通常ならん
よほど下手くそに作るのでもなければ
0447nobodyさん2016/09/13(火) 12:40:58.61ID:???
でも、RDBMSは奥が深すぎるからな・・
トランザクションの分離レベルで、シリアライザブルをメインで使うのは駄目かな?
0448nobodyさん2016/09/13(火) 13:26:10.20ID:???
中途半端なリプライ機能いらないと思う。ソース見ると1人にしかリプライしか
できないなんて、クソすぎだろ。
>>21-25
あほ。
とかまとめてリプライできないんだぜ。
2chの劣化にしかならねぇ。
0449nobodyさん2016/09/13(火) 13:35:52.35ID:???
それにリプライの表示の仕方なんてクライアントでいくらでもできるかもしれんが、
ツリー表示は2ch型掲示板には向いてない。
例えば、こういう過疎スレとかで、古いレスにリプライ(例えば、>>10)とかしてツリー表示すると、
新着レスを見つけにくいんだよな。で、誰にもレスに気づかれず終わりやすい。

時系列表示だと、新着に気づきやすいから、レスが埋もれることがなくなる。
ので、時系列表示は強制すべきだな。
0450nobodyさん2016/09/13(火) 13:44:55.57ID:???
>>111にも書いたけど、Redditに似せたら2chの代わりにはならず失敗するよ。
Redditはリプライ機能あるツリー表示だし、多彩なソート機能とか最悪の機能ばっかだった。

レスのソートを許すとさっきも書いたけど、過疎スレで新規レスが誰にも気づかれずに
うもれちゃう。
ソース見るとvote機能とかあるけど、voteできるようにしてもいいが、vote順にソートとか
も、これもレスを埋もれさせるのであんま感心しない(もちろん、クラアイントアプリ側で独自に実装できちゃうけど)。

時系列表示が最強。
0451nobodyさん2016/09/13(火) 14:06:16.06ID:???
後は、実装的な話になってるかもしれんが、TopicHistoryって2chでいう、
過去ログとかをマネしたのかもしれんが、別に、Topicと分ける必要ねぇだろ。
TopicにLive Topicかを表すフラグつければいいだけで・・

パフォーマンス的に古いデータを別テーブルに移したいっていうなら、
先にデータが膨大になりがちなResの方を移すべきだと思うし。
045212016/09/13(火) 16:51:57.95ID:???
>>443
KVSとかXMLとかのですよね?
よく分からないので使いません
DBは表形式で不便に感じていないので

>>446
設計見直したら一回の書き込みで大量のDB接続が必要な設計になっていました
Userクラスが原因です
しばらくはこのままで行きますが

>>448
複数人リプライですか…
実装難しそうなので見送ったのですが検討してみます

>>449
最初はツリー表示にする予定でしたが、Redditを使ってみて使いにくかったのでやめました(あと実装が難しかった)

>>450
Vote機能は自治の為の機能であって、ソートの為の機能ではありません
運営が関わるような事(法的にアウトだったり、鯖に負荷を掛けたり、個人情報の書き込みだったり)ではないが不愉快な書き込みに対してDVをすることで書き込みが削除されます
しかし、DVだけだと悪意のもった集団がDVで無差別に削除する可能性があるので対抗する機能としてUV機能も付けました
また、UVを多くされればユーザーのレベルが上がり、投票への影響力が大きくなったり書き込みの規制も緩くなります
DVを多くされれば逆の事が起こります

>>451
タイトル、カテゴリ、テンプレを自由に変更出来る用にしたので、それのバックアップです
wikiのバックアップと同じ機能です

運営は最低限の事だけを行えば自動で管理が出来る掲示板を目指しています
また、内部は複雑でも使い方はRedditのように複雑にならないように気を付けています
例えば、Vote機能は上に書いたような複雑な仕組みをしらなくても、不愉快な書き込みにはDV、良い書き込みにはUVをすると言う事だけ知っていれば使えます
あとサーバーの機能は必要最低限にします。理由は、サーバーの負荷を抑える為と、サーバーの不具合はクライアントサイドの不具合と比べて重大な事になりやすいからです
0453nobodyさん2016/09/13(火) 18:32:23.11ID:???
>タイトル、カテゴリ、テンプレを自由に変更出来る用にしたので、それのバックアップです
>wikiのバックアップと同じ機能です
そういうことか。

>Vote機能は自治の為の機能であって、ソートの為の機能ではありません
了解。
ってか、投稿って匿名じゃできないんだっけか???
読むのはできるだろうけど。

>複数人リプライですか…
後は、何気にさらっと2chでは>>452にみたく1レスに複数人宛てに自由に書けるけど、
これはできなくてもいいのかな・・?
まぁ、そこらへんの使い勝手をしっかり考えたほうがいいと思う。
0454nobodyさん2016/09/13(火) 18:39:31.51ID:???
>>452のレスを6回に分けて個別にレスしないといけないとしたら・・
どうだろう。俺的にはめんどくせぇな。
いかに、2chのシステムが使いやすいってことがわかると思う。
045512016/09/13(火) 18:55:45.10ID:???
>>453
匿名で投票が出来てしまうと、荒らし対策的に問題があるので出来ないようにしています
通報はアカウントを持っていなくても出来る用にしますが(全く関わりのない人の個人情報を書き込まれた場合などの対策の為)
投票情報を公開するかは現在検討中です

>>454
確かに面倒ですね
どう実装するか考え中です
実装したいんですが中々難しくて…
045612016/09/13(火) 18:59:11.27ID:???
投票機能がある関係上、複数垢を持たれると荒らし対策として機能しません
しかし、規約で禁止した所で効果があるとは思えません
そこで、複数垢を持つことによるメリットを潰して行きたいと考えています

また、カテゴリ機能はあくまでトピ検索の為の機能とし、自治はトピ単位で行うようなシステムにします
これはカテゴリの変更が可能だからと言う理由もあります
045712016/09/13(火) 19:04:13.21ID:???
とりあえず例外処理が終わったので(かなり抜けがありますが)、APIを作っていきます
実際に動かしながらエラー処理をした方が早いと思うので
0458nobodyさん2016/09/13(火) 19:19:00.77ID:???
後、もう1点、トピックはトピック立て直さなくていいように、
タイトルは修正できるようにして、トピック毎のレス数に制限を設けなくしてる
と思うんだけど、区切りつけないと人気のあるトピックだと、
レス番が10万とかいって、見た目うっとおしくなりそう。

トピックのレス数に制限設けて、新規トピック作成時に、前のトピックのIDを指定して、
結びつける手もある。
0459nobodyさん2016/09/13(火) 19:23:46.45ID:???
>>自治はトピ単位
狭すぎじゃねぇのかな。Redditでもモデレーター集めるの大変なのに。
でも、ユーザーって管理ユーザーと一般ユーザー別れてるか知らんが。
046012016/09/13(火) 20:12:38.32ID:???
>>458
TwitterのTLみたいに少しずつ読み込むから問題ないと思うけど

>>459
狭いかな
そこのシステムはもう少し考えてみるか
0461nobodyさん2016/09/13(火) 20:42:06.83ID:???
>TwitterのTLみたいに少しずつ読み込むから問題ないと思うけど
少しずつ読むとか全く関係ないだろ。

235342 : nobodayさん 2016/09/13(火) 20:12:38.32 ID:???
あいうえお
235343 : nobodayさん 2016/09/13(火) 20:12:38.32 ID:???
かきくけこ

2ch風に表示するとこんな感じになるんだぜ。レス番の桁数が増えすぎて、見た目うっとおしくなりそう
で、レスの仕様がどうなるのかしらんが、2chと同じ本文に埋め込むなら

>>235343

長いな・・手入力だとタイプミスしそうだぜ。
まぁ、気にしすぎかもしれんけど。気づいたから言っただけ。
046212016/09/13(火) 20:47:50.41ID:???
>>461
表示方法は実装によるけど、公式WEBアプリではレス番の表示はしないし、>>nnnnみたいな事しなくてもよくする(PHP版と同じ実装)
あと、仕組み的に全レスでユニークの連番になるから、トピで番号振ってたら飛びまくって意味分からないことになる
0463nobodyさん2016/09/13(火) 20:50:14.29ID:???
まぁ、今はレス番400番台だけど、例えば
>>452で仮にレス番が40万番台としよう。
簡単に6つのレス分>>XXXXXX入力できるか?

見る方としても6桁のレス番はパッと見、人間の限界超えてるな。
0464nobodyさん2016/09/13(火) 20:52:46.53ID:???
>>462
だって、ツリー表示みたいな事はやめるんじゃなかったけ??
時系列で表示するなら、どうやって、レス番号表示せずにリプライの関係を示す?
046512016/09/13(火) 20:59:34.24ID:???
自動的なツリー表示はやめるけど、「>>返信」と言うボタンをクリックしたら展開される
専ブラのポップアップ表示みたいな感じ
0466nobodyさん2016/09/13(火) 21:11:50.95ID:CJ37alkT
>>1
それは本質的にはツリー表示と一緒だから。

で、それやると、>>449に書いたように、レスが誰にも気づかれずに埋もれるんだよ。

例えば、このスレのレス番今は400台だけど、例えば古いレス番10にリプライするよ??
そうしたときに、君の言うツリー表示だと、レス番10に相当するレスをまず遡って表示して、「返信」
ボタンを押さなきゃいけないの??
これだと誰にもレスが気づかれない可能性あるよね。

それとも、逆?、新しいリプライのレスに「返信」ボタンつけるの??
この場合は、わざわざ、ボタン押さないとリプライの関係わからないんだ?
046712016/09/13(火) 21:18:14.07ID:???
>>466

「>>nnn」と言うボタン押しても、「n件の返信があります」と言うボタン押してもポップアップされる
0468nobodyさん2016/09/13(火) 21:19:02.81ID:???
>わざわざ、ボタン押さないとリプライの関係
ここは別にホーバーして表示でもいいし、実装次第だったね。すまん。
046912016/09/13(火) 21:24:48.22ID:???
とりあえずサーバーサイド完成させて、WEBアプリ作っていく
実物見せながらじゃないと改善難しいだろうし
0470nobodyさん2016/09/13(火) 21:26:07.83ID:???
ん??
>>462で「>>nnnn」みたいな事しなくてもよくするといってるのに、
>>467で「>>nnn」と言うボタン押しても
って結局どうする気なのかわからん。
まぁ、君の中でまとまってればいいやww
長々お手数かけました。
0471nobodyさん2016/09/13(火) 21:27:59.93ID:???
>>469
わかった。コーディングの手を止めさせてしまって悪かった。
047212016/09/13(火) 21:30:25.81ID:???
>>470
あーごめんミス
「>>返信」の間違え
047312016/09/14(水) 23:01:17.20ID:???
複雑になりすぎていたのでTopicとTopicHistoryを分離しました
Userクラスも少し分離してみます
複雑すぎてAPI作るのが難しそうだったので
0474nobodyさん2016/09/14(水) 23:09:11.60ID:???
done is better
047512016/09/14(水) 23:14:26.86ID:???
ok
047612016/09/14(水) 23:44:36.65ID:???
Userクラス分離完
API作るか
0477nobodyさん2016/09/15(木) 01:01:52.06ID:???
まじいそげよ。
047812016/09/15(木) 01:36:10.83ID:???
cookieにパスワード入れていたら危なそうなのでToken作った
明日からapi始める
0479nobodyさん2016/09/15(木) 14:01:33.56ID:???
VPS借りる場合、メモリ2GBあったほうがいいかも。データベースにヘビーに
アクセスするから、1GBってどうなんだろう。
だから、さくらの更に上位のプランは高いから他がいいのかもな。
0480nobodyさん2016/09/15(木) 14:11:15.58ID:0CclNGS2
P2Pハイブリッドで。
全員がサーバー相当する必要はなく、http://2chat.net/へアクセスしたら
ポート解放して読み書き可能なサーバー相当のPCへつなぐ。
0481nobodyさん2016/09/15(木) 14:36:15.91ID:???
awsとかconohaとかシームレスに拡張できるものがいいかもね
048212016/09/15(木) 17:33:36.38ID:???
>>479
2GB借りる予定
1GBは足りなくなるってどこかで見た
さくらが大手らしいから一応さくらにしようと考えているけど

>>480
P2Pは仕組みよく分からないから今回はなしで

>>481
さくらってプラン変更するのに解約→再契約がいるんだよね?
でも有名サイトも結構さくら多いからな…
048312016/09/15(木) 17:38:21.18ID:???
APIベースクラス作ったから後は単純作業だ…
0484nobodyさん2016/09/15(木) 17:56:23.33ID:???
>2GB借りる予定
あ、2GBで1700円か。勘違いしてた。1GBが1700円と思ってた。
>さくらってプラン変更するのに解約→再契約がいるんだよね?
プラン変更はわからんけど、スケールアップしなくても、新しいプランを契約して、
2つのサーバーをローカルネットで連携させて、スケールアウト見たいな事は
できるんじゃね??WebサーバーとDBのサーバーの2つ仮想サーバーに分けるとか。
0485nobodyさん2016/09/15(木) 17:59:56.73ID:???
Webサーバーだけだと、ディスク容量がもったいないので、
(Webサーバー+DBサーバー)とDBサーバーで、DBは分散させてこうかな?
適当。
048612016/09/15(木) 18:17:36.93ID:???
拡張とか2つ借りると言っても2000円越えるのは絶対無理
そんな金ない
048712016/09/15(木) 18:22:47.38ID:???
nch.net既に使われてた
048812016/09/15(木) 18:23:40.75ID:???
スクリプト名はNchだけど、サービス名はどうしようかな
0489nobodyさん2016/09/15(木) 18:27:37.11ID:???
そっか。
2つ借りる状態になるってことはアクセス数増えてくるわけだから、
その間に広告とか貼ってマネタイズするとかそういう計画はないんだ。
そうしてアクセス数の増加とともに広告で金稼いで、サーバー代捻出して
ステップアップしていくと普通に思ってわ。
049012016/09/15(木) 18:30:00.02ID:???
>>489
広告は色々心配があって…
アドセンスとか規約厳しいみたいだし、書き込み内容が酷いとBANされないかなと
アマゾンとかは大丈夫なのだろうか
0491nobodyさん2016/09/15(木) 18:34:20.53ID:???
そっか。俺はそこらへん素人だから実情わかってなかったわ。
049212016/09/15(木) 18:37:35.26ID:???
俺もよく分からないから調べてみる
Googleはアウトらしいけど、他なら大丈夫な所あるかも
049312016/09/15(木) 18:41:30.17ID:???
2chの広告はマイクロアドって言う奴っぽい
ggってみたら審査も緩いらしいし、ここならいけるかも(Googleで落ちた人が使っているらしい)
049412016/09/15(木) 18:47:25.42ID:???
画像投稿機能はサーバー側には付けません
imgurAPIを利用します
0495nobodyさん2016/09/15(木) 20:20:39.67ID:???
そこらへんは悩みどころだよな。
レスの本文に何を許すのか。本文に(Markdownとかによる)HTML入力を許すのか。
それとも、単にPlainなテキストのみ許可するのか・・・
HTML入力許すとブラウザで表示する場合はいいけど、クライアントアプリでの
表示が大変になる・・
049612016/09/15(木) 20:24:21.14ID:???
MarkDown使う(独自拡張したいけど大変そう)
クライアントアプリはあまり考えていない。もし作るならElectronとか使ってする
0497nobodyさん2016/09/15(木) 20:36:32.49ID:???
2chmateとかandroidやiOSを無視する気ですかね。
まぁ、そこらへんはすべてのHTMLタグに対応しなくて(できるわけもないし)、
表とかはきつそうだけど、基本的なタグだけ対応すれば、まぁ、でもユーザーが
やりすぎるとブラウザでの表示とクライアントアプリでの表示がかい離しすぎちゃうけど。
049812016/09/15(木) 20:43:11.45ID:???
>>497
WEBブラウザからだと問題ある?
WEBアプリはスマホ対応するけど
あと今調べたらElectronみたいなCordovaって言うのがあるらしい
049912016/09/15(木) 20:58:47.06ID:???
最近reCAPTCHAって奴多いなと思っていたらGoogleだったのか
凄い有能だと思っていたけど流石Google
0500nobodyさん2016/09/15(木) 21:02:47.89ID:???
例えば、2chなら2chmate並みの操作性に近づけてくれるなら別にWebブラウザでもいいよ。
もちろんWebアプリで可能だと思うし。まぁ、デメリットはブラウザ(JavaScript)で動く分、多少重くなるだろうが。

最低、スレをお気に入りに登録して新着チェックを簡単にできるようにそれぐらいは必要でしょう。

このスレだって、途中で>>1がいなくなって戻ってきたけど、このスレをお気に入りに登録して、
新着チェックできるからこそ、>>1が戻ってきた事に気づけたわけだし。

まぁ、でもスマホとかじゃ2chmateなど専用ブラウザから見てる人圧倒的なんじゃないかな。
2chのスマホ向けのWebページがしょぼすぎて低機能なのもあるけど。
050112016/09/15(木) 21:13:55.41ID:???
>>500
お気に入り機能とか使ったことなかった…
タブ170件以上開いて新着チェックしてた

まあそれは置いておいて、
2chmateは使ったことない(IOSだから)よく分からないが、多分専ブラの機能なら大変だろうけどWEBで実装出来ると思う
専ブラ作るのが大変なのはネイティブでも変わらないし

2chは本当WEBページゴミだよな…多分ajaxとかSPAとかが流行ってなかった事に出来たからだと思うけど
050212016/09/15(木) 23:14:57.05ID:???
明日か明後日にはサーバーサイドAPIの実装が終わるので(テストはまだだけど)、クライアントの方はその後に考えます
とりあえずPushしました
050312016/09/15(木) 23:16:36.60ID:???
クライアントですがJS使えないブラウザは当然ですが、IEも捨てるかもしれません
050412016/09/15(木) 23:18:34.33ID:???
いつのまにか500行ってた
テストコード1回も書いたことないから何すればいいか分からん。。。
050512016/09/15(木) 23:31:09.21ID:???
あとPHP版でコールバック地獄で酷い事になったのでpromise採用します
050612016/09/15(木) 23:54:14.47ID:???
クライアントはvue.jsではなくangular2を使います
0507nobodyさん2016/09/16(金) 16:54:03.11ID:???
>>302だけど、俺もPHP挫折しそうww
コード補完がまともに動かなったり、->の代わりに.をくせでスペルミスしたりで動かなったり効率悪すぎ。
いちいち、メソッド名忘れると、Webで検索してるわ。
開発環境が悪いのかなぁ・・
Windows上のVisual Studio Codeで作って、仮想マシン上のLinuxにデプロイ・実行してるんだけど。

ということで、.NET Core + ASP.NET Coreに移行中。
とりあえず、開発環境と実行環境分けるとあんまいい感じじゃなさそうなので、
Linux上のVisual Studio Codeでやるわ・・
050812016/09/16(金) 16:58:37.39ID:???
VS CodeはJSとかHTMLだと軽くて強力だけどPHPは微妙
VSにPHP Tool(クソ高い)入れるかNetBeansおすすめ(そもそもPHPがゴミだけど)

C#ならVS CodeよりVSの無料版の方が絶対良い
0509nobodyさん2016/09/16(金) 17:28:26.93ID:???
>VSにPHP Tool(クソ高い)入れるかNetBeansおすすめ(そもそもPHPがゴミだけど)
勉強目的でいきなりお金払うのわね。NetBeansとかいうのいいんだ。
俺的にはコード補完とかもうちょいまともに効くならPHPという言語でも許容できるけど。

>C#ならVS CodeよりVSの無料版の方が絶対良い
うん。今、それに向けて作業してる。元々、UWPアプリとか作っててVisual Studio 2015使ってるからね。
これ以上、メインマシンをよごしたくなくて、維持でも実行環境(Webサーバー+DBサーバー)は仮想マシン上に構築しようとしてたけど、
Windows上で.NET Core + ASP.NET Coreの開発環境入れてもIISとかインストールされないっぽい(
Kestrelとかいう軽量サーバーがデフォルト?)から、VSにすることにした。
で、データベースだけはLinux上に。
0510nobodyさん2016/09/16(金) 17:32:57.59ID:???
あれ,IIS Expressとかにインストールされちったw
051112016/09/16(金) 18:28:33.80ID:???
TODO:
User子クラスに認証関係のチェック不足が大量にあったので修正する
051212016/09/16(金) 20:36:37.97ID:???
API一通り完成したのでコミット&Pushしましたー
0513nobodyさん2016/09/16(金) 20:57:06.34ID:???
全部POSTメソッドなんだ。
つか、ソース見にくすぎだな。
0514nobodyさん2016/09/16(金) 21:06:49.13ID:???
つか、これ、コンパイルは通ってるの??
abstract class HttpApiBase(val tokenFlag:TokenFlag,val strParams:List[String],val intParams:List[String]) extends HttpServlet
Scalaの事よくわからんけど、tokenFlagとかコンストラクタの引数?
継承元のHttpServletってサーブレットコンテナ?がHttpServletのインスタンスを生成して、適切なdoPostとかdoGetとか呼んでくれるんじゃないの?
HttpApiBaseにコンストラクタ引数を宣言してて、だれがこれをセットしてくれるのか??
0515nobodyさん2016/09/16(金) 21:10:30.17ID:???
あ、ごめん。Scalaはなんか違うのか。派生クラスみたら、定数値っぽいのがセットされてるな。
051612016/09/16(金) 21:38:02.32ID:???
>>514
class Hoge(val i:Int)

public class Hoge{
  public final int i;
  public Hoge(int i){
    this.i=i;
  }
}
と同じ(実際は内部でgetterが生成されていたりするけど)
かなり短く書ける
051712016/09/16(金) 21:44:30.44ID:???
あとListはscalaのAPIで不変なリスト
javaのHoge<T>はScalaではHoge[T]
Hoge[]はArray[Hoge]
051812016/09/16(金) 23:09:55.00ID:???
あっ大事な事忘れていた
web.xmlがない
051912016/09/16(金) 23:11:44.98ID:???
URLとかは
hogeFooよりhoge-fooの方がいいのだろうか
0520nobodyさん2016/09/16(金) 23:42:59.51ID:???
RESTfull API的には
hoge/foo/afef
で、HTTPメソッドGETで取得、POSTで挿入、PUTで更新、PATCHで部分更新、DELETEでリソース削除。
052112016/09/16(金) 23:48:46.55ID:???
>>520
POSTとGETは分かりますが、残りは対応面倒と聞きました
全部POSTに統一が一番シンプルでいいかと思ったので、POSTに統一しています
052212016/09/16(金) 23:49:26.23ID:???
まだ、バグ修正などありますが、APIを頭の中で整理するために仕様書を書きます
0523nobodyさん2016/09/16(金) 23:56:47.02ID:???
対応って別に全部に対応する必要はないよ。
例えば、User自体は削除できないんだから、Userに対してDeleteメソッドは定義する必要はないし。
Scalaとか使う道具にはこだわるが、作りだす物にはこだわりがないのかね?
いきなり全部はできんけど。

つか、せめて、取得系はGETでいくべきだ。全部POSTとか、クソAPI呼ばわりされること間違いなし。

RESTful APIに別に無理してしなくてもいいが、
例えばQiitaのAPIはRESTful APIっぽいし。
https://qiita.com/api/v2/docs
http://wp.tech-style.info/archives/683
052412016/09/17(土) 00:03:42.90ID:???
>>523
なるほど
何か難しそうだけどそういう風なのが普通なのか
あとエラーコードの返し方も考えた方がよさそう
全部jsonで返しているし
052512016/09/17(土) 00:04:24.59ID:???
これHTTPの基礎勉強しないと駄目だ
0526nobodyさん2016/09/17(土) 00:05:38.71ID:???
RESTにしなくても、RPC的なAPIでもいいと。
https://dev.twitter.com/rest/public
Twitterはそんな感じだけど。パラメータの渡し方は。
052712016/09/17(土) 00:06:00.49ID:???
PATCHとか初めて聞いた
0528nobodyさん2016/09/17(土) 00:06:47.04ID:???
いや、エラーは全部JSONでいいよ。他のResponseとかも
JSONで返すんだし統一性がないと俺ならブチ切れる。
0529nobodyさん2016/09/17(土) 00:09:19.60ID:???
エラーはHTTPのステータスコードでエラーを示して、
更に詳しい情報やメッセージなどをレスポンスのJSONボディで返すのが
普通かな。大手サービスはだいだいこんな感じ。
053012016/09/17(土) 00:10:05.25ID:???
>>528
エラーの詳細はJSONだろうけど、HTTPステータスがエラーでも200 OK返しているからどうなのかなと思って
例えば、「本文が長すぎます」みたいなのは200 OKでいいの?
0531nobodyさん2016/09/17(土) 00:12:25.56ID:???
>>526のTwitterはGET,POSTでパラメータはどっちかというとクエリパラメータで
渡して、RPC的なんだと思う。
053212016/09/17(土) 00:12:43.05ID:???
>>529
大まかなエラー内容はHTTPステータスでいいのか

REST APIで調べたら「セッションなどの状態管理を行わない」って書いてあったけどトークンってこれに含まれる?
何か凄く難しい
053312016/09/17(土) 00:14:25.50ID:???
>>531
twitter参考にしているからこっちがいいのだろうか
何か凄く難しい…
TwitterAPI生では触った事ないから内部でどうなっているか考えた事なかった
0534nobodyさん2016/09/17(土) 00:16:42.85ID:???
>>530
それはまずい、それはクライアラント側のエラーだから
ステータスコードは400のBad Requestで、
JSONの方に、本文が長すぎますみたいな感じで。
まぁ、はじめてなんからほどほどでいいけど。

https://tools.ietf.org/html/rfc7231
で、どんなステータスコードあるかサクっと見たほうがいい。
4xx系がクライアント側のエラー
5xx系がサーバー側。例えば、クライアント側のリクエストには問題ないが、
サーバー側で問題発生で処理できないとか。
053512016/09/17(土) 00:18:20.61ID:???
>>534
何か基礎が分かってないみたいだからRESTとRPCを見て、エラーコードも確認してみる
実装は明日にする
0536nobodyさん2016/09/17(土) 00:23:06.98ID:???
>REST APIで調べたら「セッションなどの状態管理を行わない」って書いてあったけどトークンってこれに含まれる?
これって認証がらみのトークンだっけ??
通常は、HTTPのリクエストヘッダにAuthorizationヘッダってあるから
https://tools.ietf.org/html/rfc7235#section-4.2
これで渡してもらうのがふつう。
0537nobodyさん2016/09/17(土) 00:25:30.64ID:???
まぁ、ほんとは認証がらみではOAuth2っていうプロトコルあって、
これをどのサービスを使ってるんだけど。まぁ、さすがに今は覚えることありすぎて
やりすぎかな。

QiitaのAPIもTwitterもFacebookもDropboxもOAuth2だし。みんなこれ使ってる。
053812016/09/17(土) 00:28:52.08ID:???
Authorizationヘッダとかあったのか
OAuthはTwitterで聞いた事はあるけどよく知らない
HTTPってかなり複雑だったんだな…
053912016/09/17(土) 00:31:04.56ID:???
やる事が思っていたより多かった
0540nobodyさん2016/09/17(土) 00:34:41.55ID:???
まぁ、俺は何度もHTTPのRFCの仕様を何度もよんだし。
いろいろ大手のAPIを叩いたし、OAuth2のクライアント側も自分で実装したりしたから、
ここらへんは叩き込まれてるけど。あくまでクライアント側だけだから。
>>507で書いたように今はサーバ側を君と一緒に勉強しようとかなと
ここに居座ってるw
054112016/09/17(土) 00:36:51.23ID:???
一度実装したものを作り直すのは大変だから一回表とかにまとめてみる
0542nobodyさん2016/09/17(土) 00:42:23.14ID:43HWDKIQ
>>541
そこだね。見てて思ったんだけど、作り方が水平方向的?なんだよね。
例えば、モデルクラス作るなら、一気に全部モデルクラスを作るみたいな。
これだと、途中で設計まずったときに全部作り直しになるじゃん。
俺なら例えば最初にUserだけのモデル作って、その次は垂直方向にUser用のAPIを作るね。
そうすりゃ、早い段階で問題点に気づけるし、全体像を早い段階で気づける。
054312016/09/17(土) 10:10:06.72ID:???
アジャイル開発って奴か
クラス間の依存とか考えたら結構難しくて…
0544nobodyさん2016/09/17(土) 10:34:47.47ID:???
認証後回しにしてメインのスレッドとレスポンスからがいいと思う
054512016/09/17(土) 10:41:23.23ID:???
サブパスワードで安全にしようと考えていたけど、流石に大量のパスワード覚えるのは面倒か
ここ全く考えてなかった
054612016/09/17(土) 10:55:39.20ID:???
・SubPass廃止
・Tokenの仕様変更
・Storageは1トークン1つ
・GET、POSTメソッドを分ける
・HTTPステータスも返す
0547nobodyさん2016/09/17(土) 14:47:49.39ID:???
そもそも、サブパスでセキュリティで気にするなら
HTTPSを使わんと。
Let's encrypt!!
054812016/09/17(土) 16:02:12.48ID:???
HTTPSってサーバーの設定じゃない?
サーブレット側でも対応することあるの?
0549nobodyさん2016/09/17(土) 17:05:10.60ID:???
ないと思う。
というよりそういう事いいたかったんじゃなくて、HTTPSはサーバー証明書が
必要になるわけだから、サーバー証明書簡単に取れるのか知らないので
そこらへん気をとめておいてねって言いたかった。
055012016/09/17(土) 17:13:27.05ID:???
証明書無料のあるか探しておく
055112016/09/17(土) 17:16:17.06ID:???
メモ
http://qiita.com/uasi/items/cfb60588daa18c2ec6f5
055212016/09/17(土) 17:29:25.24ID:???
authorization認証よく分からん
とりあえずはリクエストパラメーターでいいか…
0553nobodyさん2016/09/17(土) 17:38:38.30ID:???
いや、別にOAuth2とか使わないんでしょ?
で、独自認証なんでしょ??そんだったら、
Authorizationヘッダのフォーマットを自由に決めていいんだって
(HTTPのAuthorizaitionヘッダの形式に違反しないかぎり)。
例えば、Authorization : nch {token}
とか
0554nobodyさん2016/09/17(土) 17:42:20.58ID:???
>>551見ると、Authorization ヘッダについて調べたのセクションに
Authorization: auth-scheme (token68 / auth-params)
ってなってんじゃん。この形式にしたがってフォーマット決めておけばOK。
例えばauth-schemeは「nch」ね(IANAにもちろん登録されてないスキームだけど)。
後はtoken68の形式か。
055512016/09/17(土) 17:45:18.34ID:???
なるほど。スキームは自由でいいのか
Authorization : nch (token_id) (token_key)みたいな感じで
0556nobodyさん2016/09/17(土) 17:46:14.52ID:???
それか>>551
Chatwork API は X-ChatWorkToken: トークン ヘッダ
ってなってるように、独自のリクエストヘッダを定義するとか。
X-NChTokenみたいな。
0557nobodyさん2016/09/17(土) 17:48:34.18ID:???
>>555
そう。Authorization: BearerとかはOAuth2を使ってるときの仕様であって、
OAuth2使ってないんだから、独自でもOKだと。HTTPの仕様に従ってるかぎり。
0558nobodyさん2016/09/17(土) 17:51:12.40ID:???
auth-scheme [ 1*SP ( token68 / #auth-param ) ]
厳密にはこうだから、パラメータ2つ渡したいなら
Authorization : nch id=(token_id), key=(token_key)
こんな感じかな。確か,区切りでいいはず。
055912016/09/17(土) 17:56:31.37ID:???
それってどこに空白入れてもいいんだよね?
=の前後とか
解析難しそう
0560nobodyさん2016/09/17(土) 17:56:43.62ID:???
で、認証が必要なAPIに認証せずにリクエストしたら、
ステータスコード401のUnauthorizedでレスポンス返す。
で、レスポンスのヘッダにWWW-Authenticate : nch
って指定して、nchスキームでの認証が必要ですよって示すのが普通。
0561nobodyさん2016/09/17(土) 18:00:31.58ID:???
RFC 7235には
auth-param = token BWS "=" BWS ( token / quoted-string )
BWS=Bad White Spaceで仕様上は許可してるけど、推奨しないホワイトスペースだね。
0562nobodyさん2016/09/17(土) 18:04:29.65ID:???
解析自体は難しくない。quoted-stringのを使わなければ。
まず、ヘッダ全体をスペースでSplitする(.NETならString.Split)で、
先頭がauth-scheme。で、今度は残り全体をまず「,」でSplitする。
でそれを今度は「=」でSplitして、終わり。
適宜前後のホワイトスペースをTrimする。
0563nobodyさん2016/09/17(土) 18:11:07.36ID:nfgV7g+h
string authHeader;
var items = authHeader.Split(' ', 1, StringSplitOptions.RemoveEmptyEntries);
items[0]がauth-schemeで空白は既にない。
items[1]が残り。
items[2].Split(',').Select(i => i.Trim());
でこれをそれぞれSplit('=').Select(i => i.Trim())
で終わり。

HTTPの仕様上、quoted-stringってのがゴミ。これを含めると解析はクソめんどくさくなる。
0564nobodyさん2016/09/17(土) 18:14:24.42ID:???
>items[2].Split(',').Select(i => i.Trim());

items[1].Split(',').Select(i => i.Trim());
こうだった。
だから、君の仕様でquoted-stringを使わないように認証トークン生成して
仕様で決めてくれれば解析は楽。
056512016/09/17(土) 18:15:14.69ID:???
思ったんだけどid=(id),key=(key)にするメリットって何?
省略可能なパラメーターがある訳ではないし(id),(key)の方が楽だと思う
仕様でそうなっているから?
0566nobodyさん2016/09/17(土) 18:16:16.49ID:???
まぁ、もちろん一番楽なのは、
Nch-ID : token_id
Nch-KEY : token_key
と独自ヘッダで分けてくれれば一番楽だね。
056712016/09/17(土) 18:17:28.80ID:???
名前被りがなければ自由にヘッダって作っていいんだよね
それならそうしようかな
0568nobodyさん2016/09/17(土) 18:17:57.62ID:???
>>563
そうだね。仕様でそうなってるからだね。
俺だったら仕様違反はしないけど、もし、(id),(key)にしたいなら、
独自ヘッダにするね。
0569nobodyさん2016/09/17(土) 18:19:56.47ID:???
>>567
うん。独自ヘッダは最初にX-ZZZZみたいなX-を先頭につける慣習??みたいの
あるっぽいことだけ指摘しておく。
057012016/09/17(土) 18:20:41.97ID:???
>>569
なら"X-Token:(id),(token)"にする
057112016/09/17(土) 18:26:51.23ID:???
プッシュしました
0572nobodyさん2016/09/17(土) 18:28:16.24ID:???
了解。idとtokenに使う文字は注意してね。なんで使えるわけじゃないから。
仕様で確認してね。
057312016/09/17(土) 19:19:03.25ID:???
>>572
idは数字のみ、tokenはbase64から=を除いたものだから多分大丈夫
0574nobodyさん2016/09/17(土) 20:53:57.80ID:???
なんだかんだでちゃんと進んでて偉いわ
057512016/09/17(土) 21:08:17.79ID:???
エラー関係はCSVで外出しした方が管理楽かも
057612016/09/17(土) 21:22:09.76ID:???
twitterの200台ステータスは200 OKしか使ってないみたい
これは分ける必要なさそう
0577nobodyさん2016/09/17(土) 21:22:16.27ID:???
いやいや、偉くないだろ。ユーザーにとっては、完成させれるか完成させれないかの
どっちかしない。開発者にとっては、完成させれなくても勉強になるけど。
だから、進んでても最終的に完成するかしないかが問題。
0578nobodyさん2016/09/17(土) 21:30:42.88ID:???
というか、このサーブレットはローカル環境で動いてるの???
057912016/09/17(土) 21:36:14.21ID:???
>>578
まだ実際に動かしてはいない
web.xmlとか作ってないからテスト出来ないし
058012016/09/17(土) 21:36:54.23ID:???
HTTPステータスコードってこんな感じ?

200 成功
401 認証が必要/認証エラー
403 リクエストの送りすぎ(書き込み間隔が短い)
404 見つからない(スレなど)
409 既に存在する(スクリーンネームなど)
421 リクエストがおかしい(パラメータが足りない、数値に変換出来ない、文字列が正規表現に一致しない、長すぎる)
500 鯖内部でエラー
058112016/09/17(土) 21:39:51.01ID:???
例えば、トピックIDを指定して取得するAPIで見つからなかったらエラーを返しているけど、
トピック検索APIで見つからなかったら成功+空の配列を返している
つまり単取得系と多取得系の違い
これってどっちもエラー返すべきだろうか…
0582nobodyさん2016/09/17(土) 21:49:02.01ID:???
ワロタ。やっぱ動かしてないかww
昨日も書いたけど、すごい水平展開に開発していくな。

https://tools.ietf.org/html/rfc7231
には421のってないな。
まぁ、そんな感じでいいんじゃないかな。
細かいところはAPIによってもマチマチだし。
0583nobodyさん2016/09/17(土) 21:50:44.95ID:???
>>581
それでいいと思う。検索の方はエラーじゃなくていいと思う。
058412016/09/17(土) 21:51:08.71ID:???
ウィキペディア見てた

421 Misdirected Request (RFC 7540)
誤ったリクエスト。
058512016/09/17(土) 21:52:45.98ID:???
とりあえずエラーコードは連番でしてみる
058612016/09/17(土) 21:54:03.23ID:???
500エラーはエラーコード-1だけでいいか
詳細教えたら危険だろうし
0587nobodyさん2016/09/17(土) 22:00:42.38ID:???
というか、マジで動かす方を優先した方がいい。
でないと、また、大幅な手戻り発生しそう。
クラスの依存関係で無理って言ったけど、そんなの当たり前。
だから、そこらへんは適当に動くようにつくればいいだけ。後で修正すればいいんだから。
>>544の人もアドバイスしてくれてるのに。
058812016/09/17(土) 22:02:21.52ID:???
とりあえず動かした方がいいのか
なら適当にAPI作って動かしてみる
0589nobodyさん2016/09/17(土) 22:10:38.89ID:???
俺もPHPの勉強し始めてるっていって、この前ASP.NET Coreをやりだしてるっていったけど、
君みたいなやり方してないぞww
初めての作業で全体像見えないまま、クラス設計なんてしようがないし。
だから、とりあえず、1,2つだけモデルクラスを作って、それで次はすぐにWeb APIの方作って、
実際にブラウザからアクセスさせてる。
それで、作り方に問題なさそうって確認してから、おおざっぱに全体の設計を
把握してから残りモデルクラスの作業に取り掛かってる。
0590nobodyさん2016/09/17(土) 22:24:28.58ID:???
PHPerだけどサーバサイド5日くらいで終わりそうじゃね?
ぼくのかんがえたさいこうの設計目指さなければ
0591nobodyさん2016/09/17(土) 22:27:06.02ID:???
複雑じゃないならActiveRecordで十分っしょ
0592nobodyさん2016/09/17(土) 22:29:55.08ID:???
まぁ、元々機能少ないからそんぐらいだろうね。データベースのテーブルも
5,6ぐらいしかないし。
0593nobodyさん2016/09/17(土) 22:33:27.35ID:???
ただ、俺はPHPで開発環境が悪いのか、コード補完とかあんま効かなくて、
タイプミスとかでエラー、メソッド名もまだ覚えてないから補完したいのにで
出なくていちいちブラウザで調べたりしてブチキレで。ASP.NET Coreの方に移行中だけど。
059412016/09/17(土) 22:36:38.04ID:???
5日ってそんな物なのか?
もしかしてここって職業プログラマ多い?
0595nobodyさん2016/09/17(土) 22:44:10.09ID:nfgV7g+h
君は、HTTPの基本みたいな事だってわかってなかったし新しい事を覚える時間が
かかるんだからしょうがないよ。
でも、なれればテーブル数も5,6ぐらいで小機能だし、5日ぐらいで実装できると思う。
俺はまだサーバーサイドは素人だから慣れが必要だけど。
でも、クライアントサイドやってきた経験から言うと、慣れれば機能的には5日くらいあれば実装できるとは思ってた。

サービスの仕様とか考える時間とかは別問題だから抜かしてね。
単純に実装する時間だけの話ね。
0596nobodyさん2016/09/17(土) 22:44:38.69ID:???
sageつけ忘れた。
059712016/09/17(土) 22:50:52.40ID:???
これで小機能って凄い
俺の中では今まで作ったWEBアプリで一番大きいのに…
059812016/09/17(土) 23:02:38.97ID:???
とりあえずコンパイル通ったのでweb.xml作っていきます
0599nobodyさん2016/09/17(土) 23:02:41.15ID:???
業務とかに比べると全然ちいさいよ。
業務だとテーブルだけでも何十、何百って数あるんだから。
で、それらのテーブルを複数結合したり、バッチで何十のテーブルを見て更新かけたり。

だからテーブル数5,6って学生の宿題用(テーブル数2,3?)に毛が生えたぐらいの規模だと。
2chだってもともと小機能なんだし。ただ、小機能とはいえユーザー数は
圧倒的だから。そこらへんはまた単純に作るだけじゃなく別のノウハウが必要だと思う。
060012016/09/17(土) 23:07:40.52ID:???
>>599
テーブルが何百って…そんなにあるのか
2chは単純だからな。ユーザーが多い以外に良い所がない気もするけど、掲示板だとユーザーの数が最大のメリットになるし
専門学校とか大学の工業科ってこういうの作ったりするの?こういう系の仕事するなら工業科進んだ方がいいかな
060112016/09/17(土) 23:09:46.74ID:???
2chってどういう負荷分散しているんだろう
gzipの存在知らなくて転送量で死に掛けた時期があったらしいし、技術と言うより単純な仕組みだから負荷少ないのだろうか
060212016/09/17(土) 23:12:09.04ID:???
web.xml凄く読みにくいし書きにくい
csv→xmlの簡単な変換器作った方が早そう
0603nobodyさん2016/09/17(土) 23:22:30.64ID:???
URLの設計の方は考え出してるの?
/api/v1/ここどうするの?
060412016/09/17(土) 23:25:59.77ID:???
>>603
/api/http/hoge/foo/…にする
今後socketとか作る可能性もあるから
060512016/09/17(土) 23:26:23.63ID:???
例えば
/api/http/topic/write/
みたいな
0606nobodyさん2016/09/17(土) 23:30:10.83ID:???
RESTful API的にはアレだけど。いっか。
必要な情報は全部、クエリ文字列で渡すんでしょ?
060712016/09/17(土) 23:40:46.58ID:???
>>606
トークン以外は全部クエリで渡す
xmlで渡したりするのが本当らしいけど、それにメリットあまり感じないし
0608nobodyさん2016/09/17(土) 23:47:54.31ID:???
メソッドもGET,POSTの2つで、パラメータはクエリ文字列経由で渡してで
RPC的なTwitter APIぽくしてるってことね。
了解。
060912016/09/17(土) 23:51:34.62ID:???
TwitterAPI結構参考にした
直接触った事はなくても、4j使って触った事はあるから他のに比べたら分かるし
061012016/09/18(日) 00:00:21.08ID:???
node.jsの実験の為にcsv→xml変換器作ったら凄く楽だった
オープンオフィスでAPIリスト作れば自動で変換してくれる
061112016/09/18(日) 00:26:10.28ID:???
tomCatが起動しないからテスト出来ない
0612nobodyさん2016/09/18(日) 11:59:41.41ID:???
tomcatいる?javaなんか
まあAppServer無くてもjarは動かせるが
061312016/09/18(日) 12:12:33.89ID:???
web.xmlがあるとエラーで落ちる
別にクラスパス間違っている訳じゃないし
0614nobodyさん2016/09/18(日) 13:20:47.67ID:???
クラスパスに言及が行くってことはClassNotFoundExceptionかな?
まあ色々ややこしいとこはあるかなあ
061512016/09/18(日) 13:24:53.37ID:???
"(TOM_CAT)\webapp/Nch.war"に配置したら
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Nch]]

エクリプスから実行したら
情報: サービス Catalina を起動します [日 9 18 13:23:35 JST 2016]
情報: Starting Servlet Engine: Apache Tomcat/8.0.32 [日 9 18 13:23:35 JST 2016]
情報: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [185] milliseconds. [日 9 18 13:23:36 JST 2016]
重大: A child container failed during start [日 9 18 13:23:37 JST 2016]
重大: A child container failed during start [日 9 18 13:23:37 JST 2016]
重大: The required Server component failed to start so Tomcat is unable to start. [日 9 18 13:23:37 JST 2016]
情報: Pausing ProtocolHandler ["http-apr-8080"] [日 9 18 13:23:37 JST 2016]
情報: Pausing ProtocolHandler ["ajp-apr-8009"] [日 9 18 13:23:37 JST 2016]
情報: サービス Catalina を停止します [日 9 18 13:23:37 JST 2016]
情報: Destroying ProtocolHandler ["http-apr-8080"] [日 9 18 13:23:37 JST 2016]
情報: Destroying ProtocolHandler ["ajp-apr-8009"] [日 9 18 13:23:37 JST 2016]
0616nobodyさん2016/09/18(日) 15:15:31.08ID:???
とりあえずnchの事は忘れて、1つのサーブレット作って起動。
それからじゃな。
0617nobodyさん2016/09/18(日) 15:18:58.45ID:???
普段GlassfishだからTomcat忘れとるなあ、、、ちょっと動かしてみるかな
061812016/09/18(日) 15:24:07.23ID:???
Glassfishの方がいいの?
0619nobodyさん2016/09/18(日) 15:32:43.63ID:???
>>617
サーブレットって引数なしのコンストラクタ以外のコンストラクタって
定義できる??。俺はそれが気になるわ。>>514に書いたけど。
062012016/09/18(日) 15:36:34.74ID:???
>>619
HttpApiBaseは親クラスだから関係ないと思ってたんだけど違う?
web.xmlに書いているクラスは全て引数無しのコンストラクタ
0621nobodyさん2016/09/18(日) 15:42:16.46ID:???
あ、ごめん。
子クラスでコンストラクタの宣言ないとデフォルトの引数なしの
コンストラクタが宣言されたことになるんだっけ???
Scalaが?
そんだったら問題ないね。すまん。
062212016/09/18(日) 15:45:56.70ID:???
>>621
javaもコンストラクタがないクラスはコンパイル時に自動で追加される
0623nobodyさん2016/09/18(日) 15:50:08.08ID:???
>>622
追加されるのは、親クラスに引数がないコンストラクタがある場合じゃなかったけ??
親クラスに引数があるコンストラクタがある場合、
子クラスで勝手に引数なしのコンストラクタ追加しようがないじゃん。
親クラスのコンストラクタに渡す引数が不明なんだから。
062412016/09/18(日) 15:56:25.13ID:???
>>623
あーそういう事か
scalaはクラス宣言がそのままデフォルトコンストラクタになって、括弧も省略できるから

class Hoge extends Base(1)

public class Hoge extends Base{
  public Hoge(){
    super(1);
  }
}
と同じ
0625nobodyさん2016/09/18(日) 15:59:54.36ID:???
>>624
そういうことか。なるほど。
>>516の説明じゃちょっと納得できなかったから。
お手数かけました。
062612016/09/18(日) 16:02:17.93ID:???
あとはifとかtry-catchが式だったり
中括弧で囲むと複式になったり…
そこらへんは考え方の違いと言うか…
062712016/09/18(日) 16:03:14.83ID:???
まだScala触り始めて10日だけど
062812016/09/18(日) 16:12:12.19ID:???
TomCatが起動しない原因が全く分からない
一回消して入れなおすしかないのだろうか
Neonにバージョンアップもしたいし
062912016/09/18(日) 16:44:08.77ID:???
プロジェクトフォルダ整理していたらjava初めてすぐの頃に作った物が大量に…
ゴミばっかり
0630nobodyさん2016/09/18(日) 17:37:47.11ID:???
Tomcatは使わず、それぞれ単独インストールする方が良いと思ってる
063112016/09/18(日) 18:42:08.09ID:???
servlet-classに存在しないクラスを指定したら一応起動する(アクセスしたら当然エラーだけど)
謎すぎる
063212016/09/18(日) 18:52:05.40ID:???
もしかするとtomcatがおかしいかもしれないから8.8→8.10にバージョンアップしてみる
063312016/09/18(日) 19:46:44.95ID:???
やっぱり無理
他のクラス作ってしてみたら出来た…
何故だ
0634nobodyさん2016/09/18(日) 20:38:28.79ID:???
少しずつ動作確認しないで作るとこうなっちゃうわけだ。
HttpServletBaseどんどん動くとこまでコード削ってて、原因突き止める?
一度にすべてのバグの嵐に見舞われるわけだし。
0635nobodyさん2016/09/18(日) 20:42:54.10ID:???
少しずつ作って・実行なら対処するバグも1度に数個で
自分がちょっと前に追加したコードが原因だろうから範囲が狭くて見つけやすいけど。

完成するまで全く実行・デバッグしないでつくる->いざ、実行時に1度に大量のバグに見舞われる。
手に負えなくなるよ。
063612016/09/18(日) 21:11:07.29ID:???
まさかここで詰まるとは思っていなかった
原因が全く分からないし
昨日の夜から全く原因が分からん
063712016/09/18(日) 21:21:46.42ID:???
今日1日あったら解決すると思ってたのに
063812016/09/18(日) 21:28:29.48ID:???
NoClassDefFoundError、ClassNotFoundExceptionも大量に…
063912016/09/18(日) 21:49:30.66ID:???
HttpApiBaseを継承したら起動できないみたいだな
ここ調べた方がよさそう
0640nobodyさん2016/09/18(日) 22:12:21.92ID:???
はは。
064112016/09/18(日) 22:14:45.70ID:???
ここまで原因が見つからないって…
064212016/09/18(日) 22:28:22.44ID:???
キツイ…
0643nobodyさん2016/09/19(月) 10:06:23.73ID:???
なんか現象の起きる最小のjar作れん?
もしかしてGitHubからもってくればこっちで再現できたりする?
064412016/09/19(月) 10:40:42.90ID:???
>>643
今Pushしたから多分再現できる
環境が悪いのか、バグなのか分からないから動かしてくれると助かる
他にも色々バグありそうだけど、とりあえずTomcatの起動したい
064512016/09/19(月) 10:50:06.29ID:???
最小のjarは原因が不明だから難しい
064612016/09/19(月) 10:53:42.41ID:???
abstract class TestBase(private val httpMethod: HttpMethod, private val tokenFlag: TokenFlag, private val strParams: List[String], private val intParams: List[String]) extends HttpServlet {
}

class Test extends TestBase(HttpMethod.GET,TokenFlag.UNNECESSARY,List(),List()){
}

だとエラー

abstract class TestBase() extends HttpServlet {
}

class Test extends TestBase(){
}

だと動く
064712016/09/19(月) 10:59:55.64ID:???
abstract class TestBase(private val i:List[Int]) extends HttpServlet {
}

class Test extends TestBase(List()){
}

だとエラー

abstract class TestBase(private val i:Int) extends HttpServlet {
}

class Test extends TestBase(1){
}

だと動く
064812016/09/19(月) 11:02:26.71ID:???
abstract class TestBase(private val i:Map[String,String]) extends HttpServlet {
}

class Test extends TestBase(Map.empty){
}

だと動く
064912016/09/19(月) 11:05:08.84ID:???
List.empty…起動する
List()…エラー
065012016/09/19(月) 11:05:58.97ID:???
List(1)…エラー
使えないじゃん
065112016/09/19(月) 11:06:50.06ID:???
当然
List.apply(1)
でも駄目
065212016/09/19(月) 11:07:52.96ID:???
原因は分かった…でも何故?
謎でしかない
065312016/09/19(月) 11:22:55.46ID:???
原因判明したから質問サイト行ってくる
0654nobodyさん2016/09/19(月) 14:23:01.82ID:???
teratailか?stackoverflowか?2chか・・
065512016/09/19(月) 14:25:33.39ID:???
teratail
https://teratail.com/questions/48511
065612016/09/19(月) 14:47:02.51ID:???
ListじゃなくてArrayなら大丈夫みたいなのでとりあえず代用します
065712016/09/19(月) 14:54:59.36ID:???
でも本当何故エラーになるんだろう
065812016/09/19(月) 14:57:27.83ID:???
あれっ出来ない
065912016/09/19(月) 15:00:23.57ID:???
066012016/09/19(月) 15:18:55.33ID:???
List以外にも原因ありそう
066112016/09/19(月) 16:03:55.92ID:???
もうこれどうなってるか分からん
0662nobodyさん2016/09/19(月) 16:43:56.86ID:???
なんか面白そうなスレめっけたw
こういう系のスレでちゃんと進んでるっぽいのは珍しいなw
0663nobodyさん2016/09/19(月) 16:48:31.02ID:???
くるタイミングおっそいわww
>>1はそろそろモチベーション切れかけてまた、2,3か月の休息とるんじゃねぇか。
066412016/09/19(月) 16:50:34.98ID:???
既にモチベ死にかけている
やっとサーバーサイド終わったと思ったらTomcatが動かないとか悲しすぎる
066512016/09/19(月) 16:51:46.20ID:???
Tomcatが動けばクライアントサイド始められるのに
066612016/09/19(月) 16:53:27.56ID:???
適当にプロジェクト分割してみる
0667nobodyさん2016/09/19(月) 16:56:08.96ID:???
Scalaとか使うからだなwwユーザー少ないし。
短くかけるってことは、裏で前提として覚える事がいっぱいあるから短くかけるんでって、
そんなのすぐれた言語とは思わん。

何事もバランス。そこそこ短くかけて、前提となる覚える事も少なくてみんな理解しやすい。
これで十分だわ。
066812016/09/19(月) 16:56:41.87ID:???
>>667
twitterもscalaだからwebには強いはず
0669nobodyさん2016/09/19(月) 17:01:43.62ID:???
Webとはあんま関係ないな。
Scalaは言語とコレクションのクラスライブラリぐらい?独自に提供してるの?
Web部分はJavaのライブラリに依存してるだろ。
067012016/09/19(月) 17:03:25.18ID:???
>>669
コレクションは不変のが結構ある
0671nobodyさん2016/09/19(月) 17:19:14.16ID:???
なんだモチベ尽きかけてんのかw
趣味プロジェクトでモチベは最大の敵だからなw
067212016/09/19(月) 17:21:08.72ID:???
Tomcat9って評価版だったのか
これ多分Tomcatのバグだわ
Tomcat8にする
067312016/09/19(月) 17:21:48.66ID:???
そういう事だったか
067412016/09/19(月) 17:23:32.54ID:???
これで直らなかったら知らん
0675nobodyさん2016/09/19(月) 17:28:42.70ID:???
俺もそう思うときあるけど、最終的には自分のコードに問題あるから。
0676nobodyさん2016/09/19(月) 17:30:04.94ID:???
つか、コンストラクタに問題ありそうだったら、コンストラクタに
引数渡すのやめてみればいいじゃん。とりあえず、それで回避したら?]。
067712016/09/19(月) 17:31:11.55ID:???
>>675
俺も何回もそういう経験あるけど今回はバグ以外に見当たらない
特定の場面だけエラーとかあるん?

>>676
それならできた
0678nobodyさん2016/09/19(月) 17:37:00.87ID:???
ロクすっぽテストケースも書いてないプロジェクトとTomcatと
どっちが信頼性あると思ってんだよ。
067912016/09/19(月) 17:39:45.10ID:???
評価版ってバグが大量にあるバージョンではないの?
068012016/09/19(月) 17:44:11.59ID:???
動かないけどエラーメッセージがさっきと違う
これはヒントになりそう
068112016/09/19(月) 18:05:12.96ID:???
普段なら3時間あれば解決するのに何で2日経っても解決しないのか
068212016/09/19(月) 18:07:42.95ID:???
おっ
068312016/09/19(月) 18:10:22.69ID:???
scalaで似たようなエラーがstackoverflowにあったから確かめてみる
068412016/09/19(月) 18:14:09.10ID:???
キタ――(゚∀゚)――!!キタ――(゚∀゚)――!!キタ――(゚∀゚)――!!
やっと起動したーーーーーーーーーー
068512016/09/19(月) 18:15:26.62ID:???
WEB-INF/libにscala-library.jar入れたら出来たーーーーー
2日潰れたけどやっとクライアントサイド出来る
scalaでservletのページには載ってなかったけど英語のページに乗ってた
068612016/09/19(月) 18:16:55.86ID:???
よっしゃ
068712016/09/19(月) 18:17:02.44ID:???
疲れた
068812016/09/19(月) 18:20:17.58ID:???
Eclipseのjar追加で参照しても駄目とか聞いてない
手動コピー必須なのかよと
って事でサーバーサイドデパッグしながらクライアント進めていきます
068912016/09/19(月) 18:21:44.49ID:???
>>675
>>678
これがあってたorz
0690nobodyさん2016/09/19(月) 21:36:36.08ID:???
どう?Next2ch超えれそう?
069112016/09/19(月) 21:45:34.02ID:???
>>690
Next2chは名前は聞いた事あるけどどういう物かを知らない
とりあえずangular2覚える
0692nobodyさん2016/09/19(月) 21:48:58.73ID:sayZi2XP
>>690
super2ch.netじゃなくて?
069312016/09/20(火) 00:05:29.54ID:???
これ駄目だ
angular2難しすぎて意味が分からん
これ覚えていたら確実にモチベ死ぬ
とりあえずvueで作って見た方がいいかも
angular2使っていたら完成する気がしない
069412016/09/20(火) 00:07:07.99ID:???
vueの場合、scriptタグで読み込めば終わりだったけど、angularは色々しないといけないらしくて理解出来ない
TypeScript使いたかったけど
069512016/09/20(火) 00:10:54.96ID:???
日本語の解説が多いからvue.jsは本当楽
0696nobodyさん2016/09/20(火) 10:21:47.07ID:???
1年後も言語とフレームワークの選定やってそう
0697nobodyさん2016/09/20(火) 16:07:13.80ID:???
改訂3版 基礎 Ruby on Rails、黒田努・佐藤和人、2015

Haxeプログラミング入門、尾野政樹、2015

Haxe(ヘックス)はOSSで、JSに型チェックを付けたような言語で(altJS)、
JS, Flash, PHP, C++, Java, C#, Python に書き出せる。
Windows8.1対応

IDEは、FlashDevelop

このサイトで、ブラウザでプログラミングして、実行できる
Try Haxe !
try.haxe.org/
069812016/09/20(火) 17:08:23.06ID:???
angular2昨日は初めてだったから意味分からなかったけど2日目になると少し分かってきた
流石に1日で投げるのは早かった
069912016/09/20(火) 17:08:54.17ID:???
とりあえずHelloWorldは出来た
070012016/09/20(火) 17:13:12.79ID:???
SPAだけど#〜使って画面切り替える
レス表示&書き込み、トピ検索&書き込み、トピ表示、通知、メッセージ、プロフィール表示、プロフィール管理を作る
残りのユーザー情報は別ページで作る
070112016/09/20(火) 17:15:49.87ID:???
もう少しまとめる
・レス表示・書き込み、トピ情報表示・書き換え
・トピ検索・トピ作成
・通知、メッセージ、プロフィール管理
・プロフィール表示
こんな感じ
0702nobodyさん2016/09/20(火) 17:55:25.31ID:???
spaの場合のグーグルのクローラの制御てどうなるんだろ?
070312016/09/20(火) 17:56:40.37ID:???
googleはjs実行すると聞いた
070412016/09/20(火) 17:59:00.99ID:???
それにしても情報少なすぎる
070512016/09/20(火) 22:06:52.26ID:???
Resコンポーネント作ってる
070612016/09/20(火) 22:50:21.77ID:???
DateパルプってISO-8601文字列使えるのか
070712016/09/21(水) 17:13:58.79ID:???
もう少し進んだら新しいリポジトリ作ります
070812016/09/21(水) 21:15:27.87ID:???
markdown大変そう
0709nobodyさん2016/09/21(水) 22:47:19.93ID:???
APIではちゃんとHTMLにして返してよね。
071012016/09/21(水) 22:54:05.33ID:???
>>709
なるべく鯖では処理しないよ
jsで沢山処理させる事で負荷減らせるし
071112016/09/21(水) 22:57:05.20ID:???
マークダウン生成とか重そうだし
0712nobodyさん2016/09/21(水) 23:06:37.64ID:???
>>709
HTMLで返すAPIとか糞すぎるわ
0713nobodyさん2016/09/21(水) 23:19:58.02ID:???
いやいや、
クライアント側でマークダウン処理させる方がいやだわ。

HTMLなら大抵のクライアントライブラリの方のDOMで「一貫して同じように」処理できるけど、

マークダウンだと方言みたいのあるだろ。
利用する言語によってサービスで利用するマークダウンのクライアントライブラリあんのか知らんけど、
なければ自分で作ってとかやってられんがな。
0714nobodyさん2016/09/21(水) 23:23:15.53ID:???
>>713
>>712に対してね。
>なるべく鯖では処理しないよ
>jsで沢山処理させる事で負荷減らせるし
で付加へらしたい別の理由があるなら仕方ないけど。
071512016/09/21(水) 23:28:10.59ID:???
なるほど、そういう事か
確かに途中でmdの仕様変更したくなったときに表示崩れる可能性もあるな
ちょっと考えてみる
071612016/09/21(水) 23:28:45.80ID:???
今の所はmarked使ってるけど
0717nobodyさん2016/09/21(水) 23:29:11.80ID:???
でも、たいていのは2つ返すかもね。
この前あげたQiita APIも元のメッセージとマークダウンが展開されたHTMLの両方。
前触ったRedditAPIも今見返すと両方返すね。
071812016/09/21(水) 23:35:24.50ID:???
両方返すようにした方がいいか
ちょっと改造してみる

・レス
・トピのテンプレ
・プロフィール

これ以外はHTMLでエンコードしているけど
0719nobodyさん2016/09/21(水) 23:53:25.22ID:???
まぁ、両方返すのがAPIを使う側にとってはありがたいね。
072012016/09/21(水) 23:55:04.43ID:???
単純にHTMLをエスケープした奴も両方返すべき?
072112016/09/22(木) 00:00:43.85ID:???
ただjsで変換だとリアルタイムで確認しながら入力とか作りやすいけど、鯖で変換すると面倒な気もする
鯖直したらjsも修正必要だし
0722nobodyさん2016/09/22(木) 00:07:39.01ID:???
ん??
本来、HTMLを受け入れる部分(レス・トピのテンプレ・プロフィール)以外は、
API的にはノータッチでいいと思う。
本来クライアント側ではHTMLで表示するとは限らないから。
072312016/09/22(木) 00:10:24.00ID:???
つまりエスケープもする必要ないって事?
スレタイとか
0724nobodyさん2016/09/22(木) 00:13:44.26ID:???
うん。それはエスケープの処理が必要かはクライアント側つまりビューの都合だから、
それはクライアントに任せていいと思うけどね。
072512016/09/22(木) 00:16:31.25ID:???
ならエスケープ処理やめるか
072612016/09/22(木) 00:17:56.98ID:???
マークダウンはどうしよう
クライアントで処理しないとリアルタイムプレビューは難しいよな
リアルタイムプレビューの為に鯖にアクセスされたら鯖死にそうな気がするし
0727nobodyさん2016/09/22(木) 00:22:25.03ID:???
2chのAPIはほんとはた迷惑。
入力としてHTMLを受け入れないくせにAPIとして返すのに、
クライアント側がHTMLで表示すること前提?に勝手HTMLエスケープして返すわ
AndroidとかHTMLで表示しないクライアント開発するときは迷惑。
0728nobodyさん2016/09/22(木) 00:23:42.18ID:???
クライアント側でリアルタイムプレビューやる場合は、もうクライアント側でやるしかないでしょ。
0729nobodyさん2016/09/22(木) 00:24:24.20ID:d6OE8H1R
ちょっと表現おかしかった。
>リアルタイムプレビューやる場合は、もうクライアント側でやるしかないでしょ。
073012016/09/22(木) 00:41:53.99ID:???
マークダウンをやめると言う方法もある
今の2chの感じ見ているとそこまでいらなそうだし、簡単なタグだけ用意して
例えば
#aa
#aaend
とか
#code
#codeend
みたいな
073112016/09/22(木) 00:44:33.46ID:???
レスを毎回整形する人はいないだろうし、テンプレ、プロフィールも【見出し】とかでも何とかならないことはない
崩れると面倒なのってソースコードとAAくらい?
073212016/09/22(木) 00:54:20.35ID:???
とりあえず記法とかは後にして、今はHTMLエスケープだけしておく事にする
パイプの中身変えればすぐ修正出来るし
0733nobodyさん2016/09/22(木) 00:55:30.58ID:???
RedditもマークダウンでHTMLの入力受け付けるけど、結構凝って作る人もいるのは事実。
特にレスにマークダウン使うってより、サブミだか忘れたけど2chでいうボード?のトップページを
凝って色々やってるっぽいね。
まぁ、マークダウンで色々できるってのは2chに対してアドバンテージになると思うけど。
073412016/09/22(木) 01:01:45.98ID:???
そうなのか
カテゴリだけだとどこに作ればいいか迷いそうだからカテゴリの紹介ページ(板の説明みたいなの)作ろうと思っているが
レスはそこまで機能いらないかもな。。。
プロフィール・トピックテンプレ・カテゴリページはあった方がいいかもしれないけど
レスにマークダウンつけると鯖で処理するとしても、クライアントで処理するとしても重くなりそうだし
0735nobodyさん2016/09/22(木) 17:41:43.23ID:???
そもそもマークダウンの処理そんな重くねぇと思うけどな・・
そんな巨大なテキストを処理するわけでもないのに、たかだか(Twitterよりはユーザーは
タイピングするだろうが・・)平均300文字くらい?のレスだし。
もちろん、サーバー側でのちょっとした負荷も積もれば巨大になるけどさ。
073612016/09/22(木) 17:49:10.59ID:???
そもそもWEB系以外は想定していなかったんだよな
PCでもスマホでもWEB技術使ったアプリは作れるみたいだしそっちを使ってもらう方針だった
だからクライアントでmarked使って変換してもらおうと思っていたし…
0737nobodyさん2016/09/22(木) 17:58:30.45ID:???
じゃ、もうHTML返さなくていいんじゃね?返したくないなら。
クライアント側で処理してもらえばいいじゃん。
方言とかあるっていったけど、100%完璧に表示する必要ないし。
だいたいの記法は互換性あるからそれでいいと思う。
0738nobodyさん2016/09/22(木) 18:06:54.77ID:???
>PCでもスマホでもWEB技術使ったアプリは作れるみたいだしそっちを使ってもらう方針
それならそれでもいいんじゃね。君がブラウザ用の1つ作れば
後は移植簡単そうで君がPC,スマホへの移植全部できそうだし。
073912016/09/22(木) 18:07:49.61ID:???
昨日も書いたけど負荷の問題以外にも、クライアントでプレビュー機能を入れると鯖とクライアントでマークダウンパーサーを合わせないといけないと言う問題がある
それが一番の問題なんだけど、他のサービスはどう実装しているんだろう
そこがクリア出来れば鯖で処理してもいいんだけど
Node使うとかかな
074012016/09/22(木) 18:13:35.48ID:???
javaにjsエンジン内臓されているみたいだからそれで変換すれば何とかなるか
そこらへん調べてみる
0741nobodyさん2016/09/22(木) 18:13:53.59ID:???
理想ばっか言い過ぎた俺が悪かったな。
Redditの場合は見た感じ、そういうAPI用意してないし、プレビューする場合はクライアント側でやってると思う。
例えばReddiestってAndroidアプリはね。だから、完璧にサーバーのマークダウンと合わせてないと
思うし、100%完璧にはやってないと思う。
074212016/09/22(木) 18:16:39.55ID:???
俺もWEB以外の事全く考えていなかった
とりあえずNashornを使う方法を考えてみる
それなら、クライアントの変換スクリプトと、サーバーの変換スクリプト同じ物を使えるし
0743nobodyさん2016/09/22(木) 18:17:45.64ID:???
まぁ、リアルタイムプレビューはサーバーの負荷的にもクライアント側でやった方がいいと思うけど。
投稿する前に「プレビュー」ボタンを押してプレビューぐらいでいいなら、
サーバー側でAPIを用意してくれれば、クライアント側ではマークダウンの細かい詳細を
意識しなくなるので楽といえば楽。
074412016/09/22(木) 18:24:27.07ID:???
リアルタイムプレビューは結構便利だし、これは絶対つけたいと考えている
0745nobodyさん2016/09/22(木) 18:46:49.59ID:???
markdownを付けるならtableを表現出来るようにあって欲しいと思う
074612016/09/22(木) 18:48:32.61ID:???
確かmarkedは出来たような
074712016/09/22(木) 22:06:50.76ID:???
javaのエンジンES6の機能使えないのかよ
074812016/09/22(木) 22:08:57.76ID:???
Babelの出番か
074912016/09/22(木) 23:09:34.97ID:???
ES6以外の問題だった
変換出来た
075012016/09/22(木) 23:13:41.02ID:???
*マークダウンの仕様

ここからDL
https://raw.githubusercontent.com/chjj/marked/master/marked.min.js

これでXSS対策
marked.setOptions({sanitize:true});

変換
var hoge=marked("変換したい文字列");
075112016/09/22(木) 23:19:20.74ID:???
mdtext要素に変換語のhtml突っ込む事にする
075212016/09/22(木) 23:31:51.97ID:???
マークダウン使用
msg
profile
topic
topicHistory
res
075312016/09/22(木) 23:59:10.61ID:???
修正版プッシュ
075412016/09/23(金) 18:02:14.60ID:???
何もライセンス書いてなかったけど、何も書かないとGitHubの標準ライセンスになって再配布禁止になるのか
今度つけよう
075512016/09/24(土) 12:25:34.63ID:???
トピックビュー
/topic/:id

単発編集履歴
/history/:id

検索(カテゴリは"-"区切り)
/search/:category/:text

ユーザー関係
/user

プロフィール表示
/profile/:id
075612016/09/24(土) 15:56:07.60ID:???
カテゴリ-区切りは多分やめる
編集履歴は
topic/:id/history
で全部
topic/:topic/history/:history
で単発
0757nobodyさん2016/09/24(土) 23:26:02.20ID:???
XMLで返すとかじゃダメなのかねぇ
JavaScriptでもJavaでもPHPでもJSPでも扱いやすいと思うけど
Ajaxでログ呼び出してクライアントで処理とか負担軽減の理想的な形じゃね?
075812016/09/24(土) 23:52:19.52ID:???
JSONでとりあえず作っているからこのままいく
XMLに移植するなら後から簡単に出来るだろうし
0759nobodyさん2016/09/25(日) 06:56:36.79ID:???
2ch tenpura とか何よこれ
0760nobodyさん2016/09/25(日) 07:03:54.20ID:???
.plってperlか?俺は知らんがソースが綺麗ってことは伝わってくる。プロの仕業だなこれ
076112016/09/25(日) 11:02:05.81ID:???
別のリポジトリ見てない?
ソース綺麗じゃないし、plファイルとかない
0762nobodyさん2016/09/25(日) 11:03:26.70
https://github.com/new2ch/2chtenpura
明らかに>>1じゃないだろ
076312016/09/25(日) 11:09:46.81ID:???
それ俺じゃない
0764nobodyさん2016/09/25(日) 11:24:37.82ID:???
>>759-760 は別に>>1のこと言ってるんじゃなくね?
0765nobodyさん2016/09/25(日) 12:27:10.77ID:???
>>759
なぜこのスレで2ch tenpuraの話題を出したんだろう?
0766nobodyさん2016/09/25(日) 12:28:35.26ID:???
>>765
作者じゃない?
0767nobodyさん2016/09/25(日) 14:09:59.98ID:???
>>759だけど。
>>1のGitHub見てたら
https://github.com/kgtkr?tab=repositoriesre
readcgiってあるじゃん。なんだこのフォークって思ってたどってったらnew2chにたどり着いたんだよ。
つか,2chtenpuraって有名なん?
076812016/09/25(日) 14:12:49.85ID:???
>>767
何か2chのUI新しくするみたいな話になって、そのプロジェクトがreadcgi(cgiって付くけどvue.js)
tenpuraは知らんが
こっちのソース再利用出来るところあればプルリクしようかと思ってフォークした
076912016/09/25(日) 14:14:32.88ID:???
こっちがメインだから向こうに行って消えるみたいな事を心配する必要はないと一応言っておく
0770nobodyさん2016/09/25(日) 14:14:49.65ID:???
【2ch】新しい2chを作る会【OpenSource】 [無断転載禁止]2ch.net
http://carpenter.2ch.net/test/read.cgi/operatex/1474454727/

これ関係か
077112016/09/25(日) 14:16:01.15ID:???
>>770
それそれ
077212016/09/25(日) 14:25:11.30ID:???
とりあえずNchWebAppリポジトリにプッシュした
0773nobodyさん2016/09/25(日) 14:31:52.02ID:???
消えるとかってより、素直に強敵出現した?と思った。
077412016/09/25(日) 14:40:21.84ID:???
>>773
この掲示板に人が来てくれるのが一番嬉しいけど、やっぱり難しいし、どれだけ時間が掛かるか分からない
俺も人が多くて、使いやすい掲示板欲しいと思っていたから、2chをもっとよく出来るなら手伝いたいなとは思ってた
サーバーサイドの機能は触らせて貰えないだろうから、機能は頑張れば勝てるだろうし
077512016/09/25(日) 14:42:42.81ID:???
あと勉強にもなるし
077612016/09/25(日) 21:28:55.53ID:???
ある程度コンポーネント出来たから、画面作っていく(画面もコンポーネントだけど)
0777nobodyさん2016/09/25(日) 23:04:35.41
Angularつかうならangular-cli
http://qiita.com/kitfactory/items/c95ca84371670b21f4ac
077812016/09/25(日) 23:07:15.55ID:???
hogehoge-cliってよく聞くけどよく分かってなかった
ちょっと見てみる
077912016/09/25(日) 23:09:39.51ID:???
パッと見たけど何か凄い
クイックスタート頑張ったのは何だったのか
078012016/09/25(日) 23:13:19.30ID:???
npmで出来たファイル削除出来なくてゴミが溜まってる
078112016/09/25(日) 23:14:31.95ID:???
名前が長すぎるからゴミ箱に移動できません。完全に削除しますか?
-Y
システムがなんちゃら
-スキップ

ゴミが残るから「ゴミN」って名前にして放置してる
0782nobodyさん2016/09/26(月) 00:54:44.89
rimraf
0783nobodyさん2016/09/26(月) 17:16:38.02ID:???
うお、同じこと考えてる人がいてびびった
>>1
>ユーザー登録は必要だが、匿名
これはゲスト参加もありのほうが盛り上がると思うぞ
クッキーやNG機能がうまく働けばそれほど荒れないと思う
078412016/09/26(月) 17:25:39.60ID:???
クッキーって忍者帳みたいな奴?
セキュリティとか色々問題があるんだよな
078512016/09/26(月) 17:27:03.47ID:???
そもそも登録にメアドすらいらない仕様だからゲスト参加作る必要性が
ユーザー名とパスワード入力するだけだから10秒掛からないし
0786nobodyさん2016/09/26(月) 22:02:06.77
AbemaTV方式とか
0787nobodyさん2016/09/27(火) 12:08:34.26ID:???
                     ____         
                   / ___  \      
                ( ̄二  |´・ω・`|   \  
                 \ヽ   ̄ ̄ ̄    )  
                ∠/       /| |   
                (        ///  
                 |   ,、______,ノ ̄ ̄)     
                 |  /    ̄/ /     
                _|_|____//_  
.            |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | ̄ ̄ ̄ ̄ ̄|
──────   |    進捗どうですCAR    |          |
 _____    |   ,-─-、        . ,-─-、 |          |
.           |_/  ,-、ヽ____/ ,-、 ヽ_|_____|
             ',   -' ノ   ヽ:::::::::',  -'  ノ  ヽ::::::::::丿
078812016/09/27(火) 17:44:09.71ID:???
クライアントアプリ作っているといくつかAPIが足りないことに気付いた
0789nobodyさん2016/09/27(火) 18:16:59.84
OpenAPIでよろ
079012016/09/28(水) 19:23:49.63ID:???
サーバーのデパッグしてるけど「例外が発生しました」しか表示されないから全く進まない…
例外名とスタックトレースくらい表示してほしい
079112016/09/28(水) 20:14:08.35ID:???
もしかして例外がどこで発生したか分からないとかないよね
全部想像しろとか無理すぎるんだが
079212016/09/28(水) 21:10:41.04ID:???
デパッグ起動したら出来た
079312016/09/28(水) 21:32:19.76ID:???
Statement.RETURN_GENERATED_KEYS忘れてたせいで動かね
079412016/09/28(水) 21:38:00.68ID:???
PHPMyなんとかって言うMySQL管理ツールとnodeとjavaサーブレットとエクリプスとVSCodeとChromeと専ブラ立ち上げたら重すぎてPCが動かん
0795nobodyさん2016/09/28(水) 21:55:53.36ID:???
スペックは?
079612016/09/28(水) 22:00:03.18ID:???
メモリ4GB
0797nobodyさん2016/09/28(水) 22:04:33.14ID:???
そりゃ、そんなアプリ立ち上げるときつそうだな。
ノート?デスクトップ??
今メモリ8GBで3千円くらい?と安いのに。拡張できないPCなん?
0798nobodyさん2016/09/28(水) 22:05:50.56ID:???
32ビットOSとかいうオチとか?
079912016/09/28(水) 22:07:34.99ID:???
64bit
win10
livaっていう小さい奴
0800nobodyさん2016/09/28(水) 22:09:13.77ID:???
ぶっww
ECSのLivaかww
まさか、CPUはAtomとかじゃないよね??
0801nobodyさん2016/09/28(水) 22:16:51.26ID:???
つか、プログラミング歴1年だっけ?
たぶん、高校生あたりでお金の問題なんだろうが、プログラミングやるなら
しっかりしたPCを1台ぐらい持っておかないとね。
Livaを買ったのか貰ったのかしらんが、Liva買ったんなら選択肢誤ってるな。
080212016/09/28(水) 22:18:50.45ID:???
>>800
CPUは分からん

>>801
今1年半
俺専用PCじゃないしな
とりあえず何とかなってるしまあ…
0803nobodyさん2016/09/28(水) 22:34:25.27ID:???
Mac買え(マカー並感
080412016/09/28(水) 22:40:06.97ID:???
Macって何が便利なの?
使った事ないからよく分からん
デザイナー向けと聞いたけど
080512016/09/28(水) 22:41:29.12ID:???
あとフリーソフトが少なかったり、ゲームも全くないと聞いた
VSがないのもな
.NETも好きだし
080612016/09/28(水) 23:09:11.47ID:???
SELECT テーブル FROM カラム名
と思っていたらテーブル名とカラム名逆だった
080712016/09/28(水) 23:09:56.42ID:???
WHELEじゃなくてWHEREだったし
全部書き直しだ
0808nobodyさん2016/09/28(水) 23:12:56.92ID:???
>>806
ワロタ
SELECT A FROM B
どうみてもBから(FROM)Aを選択・射影(SELECT)するじゃね。
080912016/09/28(水) 23:16:30.78ID:???
27個…
081012016/09/28(水) 23:20:22.68ID:???
終わった
081112016/09/28(水) 23:21:07.50ID:???
>>808
テーブルの中のカラムだから、テーブルが先と思った
PHPの方ではあってるのに
0812nobodyさん2016/09/28(水) 23:55:37.70
せめてSurfaceくらいは…
0813nobodyさん2016/09/28(水) 23:59:11.59
NUCなら良かったのに
EclipseとかIDEは重いやつおおいし
081412016/09/28(水) 23:59:17.92ID:???
まだ買い替えて1年経ってないから(前のPCが死にかかってて起動に1時間掛かる様な状態だったけどwin10出るまで待ってた)あと数年はこのPC使う予定
081512016/09/29(木) 00:01:31.27ID:???
PC死んでいた時期

101 :名前は開発中のものです。 :2015/11/01(日) 17:13:47.34 ID:22x8NxDl
細かい調整は作った後にする予定です
後一昨日からPCの調子が悪くてVSの起動も出来ないので少し開発は休んでいます
すみません
0816nobodyさん2016/09/29(木) 00:03:27.56
バックエンドはいいとしてフロントエンドはどうすんの?
081712016/09/29(木) 00:05:39.24ID:???
>>816
結構進んでいる
フロントとバックを同時にデパッグ中
081812016/09/29(木) 00:06:00.23ID:???
SQLで文字化けした
0819nobodyさん2016/09/29(木) 00:07:43.90
照合順序は?
0820nobodyさん2016/09/29(木) 00:20:01.49ID:???
学生ならブログでサービス作ってるアピールして乞食すればどっかの気前良いおっちゃんがポンとSurfaceでもMacBookでも買ってくれそうw
082112016/09/30(金) 00:16:15.06ID:???
独自ヘッダつけるとクロスドメインの通信が結構面倒になるみたい
0822nobodyさん2016/09/30(金) 00:41:09.00ID:???
そうなんだ。それは知らんかった。
0823nobodyさん2016/09/30(金) 00:43:51.19ID:???
CORSとか全く知らんので俺も調べてみっかな。
082412016/09/30(金) 00:48:05.53ID:???
これ普通にリクエストパラメーター送信の方が楽みたい
「単純なリクエスト」だとヘッダ追加するだけみたいだけど、独自ヘッダつけたら2回リクエスト送るとか
0825nobodyさん2016/09/30(金) 02:11:48.21ID:???
昔サーバー側でアニメーション作るとかいうメチャクチャなことする時にヘッダ勉強したな
0826nobodyさん2016/09/30(金) 15:03:28.35
>>821
Access-Control-Allow-Headers
082712016/10/01(土) 01:42:01.88ID:???
>>826
optionメソッドでリクエストみたいな事書いてあったけど。。。よく分からない

投票で匿名性が若干壊れる可能性がある事に気付いた
レスの体力がレベル依存だから、体力公開してしまうとマズイ気が
一人だけ高かったりすると同一人物だと特定出来る
0828nobodyさん2016/10/01(土) 02:25:48.11ID:???
perlの話題出てたから覗いてみたけど確かに精通してる感ある
昔の個人が配布してたperl/cgiなんて酷いなんてものじゃなかったし
わかってる人がわざとレベルを落として古いperl/cgiをそのまま書き直しましたって感じ
0829nobodyさん2016/10/01(土) 16:39:57.52ID:???
あのソースはこのスレと関係なくね?
0830nobodyさん2016/10/01(土) 19:08:34.68ID:???
>>827
最初にOPTIONSメソッドでリクエストが飛ぶ(ヘッダが確認されるだけ、内容を返す必要なし)→次にGETなりPOSTなりが飛ぶ
083112016/10/01(土) 20:20:18.63ID:???
>>830
doPostとかdoGetはあるけどdoOptionがないから作れない
0832nobodyさん2016/10/01(土) 22:29:07.70
http://www.javadrive.jp/servlet/ini/index2.html
あるよ
083312016/10/01(土) 22:36:38.79ID:???
複数形か
仕様もう少し調べてみる
0834nobodyさん2016/10/01(土) 22:40:31.03ID:???
仕様書読んでなさそうだな。
この業界に身を置くなら最終的には技術文書ぐらい読めるようにならんと。
083512016/10/01(土) 22:46:13.91ID:???
技術文書ってもしかして英語?
0836nobodyさん2016/10/01(土) 22:49:39.41ID:???
うん。たいてい英語だな。
083712016/10/01(土) 22:54:53.24ID:???
Google翻訳最近優秀になってきたけどまだ分かりにくいんだよな
たまにソースコードとか翻訳したら駄目な所も翻訳するし(TypeScript→活字体など)
0838nobodyさん2016/10/01(土) 22:59:38.27ID:???
ある程度は読めるでしょ
0839nobodyさん2016/10/01(土) 23:01:34.62ID:???
そうだ。俺が間違ってた。英語なんてもう覚える必要ない時代はすぐだな。
機械翻訳で十分な時代がもうすぐそこに。
0840nobodyさん2016/10/01(土) 23:03:47.35ID:???
>>838
いや、wikipediaとか見てるっぽいから読めなさそうには思えた。
084112016/10/01(土) 23:11:22.55ID:???
英語だけは全く無理
0842nobodyさん2016/10/02(日) 11:10:31.10ID:???
「無理」というのはですね、嘘吐きの言葉なんです。途中で止めてしまうから無理になるんですよ
0843nobodyさん2016/10/02(日) 11:44:15.11ID:???
ワタミきらい
0844nobodyさん2016/10/02(日) 12:29:55.56ID:???
>>842
この場においては間違ってはいないかな
英語は今でも苦手だけど、辞書を引きつつ読もうと努力したことである程度は読める自信が付いた
辞書なしで読めることはほとんどないけど、英文を見た瞬間「絶対無理!」とそっと閉じる事はなくなった
やるかやらないかの違い
084512016/10/02(日) 12:35:20.20ID:???
結構頑張ってるけどPCだとつい翻訳使ってしまう
翻訳使うから覚えられないんだろうな…
0846nobodyさん2016/10/02(日) 12:50:49.11ID:???
そんな時、出会ったのが皇潤です。
じゃなくて
聴くだけで覚える
じゃなくて
まあ原文見ながらやってりゃこの手のやつは言い回し同じだからそのうち
0847nobodyさん2016/10/02(日) 14:02:00.31ID:???
技術文書の英語ってワンパだからすぐ慣れるよな
逆に言うと技術文書英語ばっかり読んでても、日常会話や英字新聞が読めるようなスキルには全くつながらないっていう…
0848nobodyさん2016/10/02(日) 16:34:58.91ID:???
日本語で説明してあっても理解しづらいことがあるのに英語で技術文書とかきつい
0849nobodyさん2016/10/02(日) 17:25:39.95ID:???
>>845
機械翻訳を使ってもいいと思うよ
最も技術文書を機械翻訳すると変な日本語になるから辞書で補完が必須だけど
苦手意識をなくすことが大切
あと、一度翻訳したものは適当訳でいいから手元にメモを残しておくこと
そういうのが積み重なって自分の資産になる
085012016/10/03(月) 18:12:10.86ID:???
marked.jsモジュールが読み込めない
085112016/10/03(月) 21:32:41.15ID:???
強引に読み込めたけど今度は別の場所でエラー
どうなってんだ
0852nobodyさん2016/10/05(水) 07:18:34.78
あげ
085312016/10/05(水) 16:33:56.79ID:???
これっぽい
https://github.com/AngularClass/angular2-webpack-starter/issues/1067
085412016/10/05(水) 16:39:49.25ID:???
システムJSじゃなくてWebPackでしてみる
085512016/10/05(水) 16:41:43.11ID:???
あと前言ってたcliって奴使ってみる
085612016/10/05(水) 22:16:31.64ID:???
何インストールしようとしても全部エラー出て無理だ
どうなってるんだよ
0857nobodyさん2016/10/05(水) 23:56:44.44ID:???
Angularとか完全に俺は蚊帳の外だからアドバイスできることはないな。
頑張るんだ。
0858nobodyさん2016/10/06(木) 10:58:28.35ID:???
エラーってなんのエラー?
npm で入れるんじゃだめか
085912016/10/06(木) 18:04:26.13ID:???
npm installでインストールできない
おかしかったから全部再インストールしたけど駄目だった
086012016/10/06(木) 18:20:51.08ID:???
winとnpmって相性悪いのかな
086112016/10/06(木) 18:31:15.53ID:???
nodistとかいう奴使ってみる
winなら使えって書いてあったし
0862nobodyさん2016/10/06(木) 18:31:17.74ID:???
あーそっかwinだっけ
VPSの一番安いとこもしくはお試し期間長いとこ借りてUbuntuかCentOSあたりでやってみては
086312016/10/06(木) 18:32:34.23ID:???
>>862
ラズパイ常時起動しているから多分そっちで出来る
初代の512MBの方だから良い奴じゃないけど
0864nobodyさん2016/10/06(木) 18:33:25.05ID:???
WinにVM入れたほうがマシかもしれんけど、まあWinのせいか切り分けできるなら
試しにやるのは夕置くかもね
0865nobodyさん2016/10/06(木) 18:33:41.49ID:???
有効かもね
086612016/10/06(木) 18:34:21.53ID:???
http://qiita.com/koba_ninkigumi/items/0c9fda1557f8d78670ef
このページに書いてあるようにしても
npm i -g angular-cli
でエラー出るのが謎
086712016/10/06(木) 18:35:35.35ID:???
ん?nodistもおかしいぞ

>nodist update
update
Installing undefined
C:\Program Files (x86)\Nodist\lib\nodist.js:89
var major = parseInt(version.split('.')[0])
^

TypeError: Cannot read property 'split' of undefined
at Function.nodist.isIojs (C:\Program Files (x86)\Nodist\lib\nodist.js:89:31)
at nodist.getSourceUrlPrefix (C:\Program Files (x86)\Nodist\lib\nodist.js:190:13)
at nodist.getUrlToExe (C:\Program Files (x86)\Nodist\lib\nodist.js:206:18)
at nodist.fetch (C:\Program Files (x86)\Nodist\lib\nodist.js:581:18)
at C:\Program Files (x86)\Nodist\lib\nodist.js:491:10
at C:\Program Files (x86)\Nodist\lib\nodist.js:416:7
at _combinedTickCallback (internal/process/next_tick.js:67:7)
at process._tickCallback (internal/process/next_tick.js:98:9)
086812016/10/06(木) 18:36:21.41ID:???
もしかするとユーザー名が日本語だからエラー出るのか?
086912016/10/06(木) 18:42:42.36ID:???
updateがv-upで消えたっぽい
0870nobodyさん2016/10/06(木) 19:24:41.35
age
0871nobodyさん2016/10/06(木) 19:41:50.92ID:???
パスに日本語混じったりもそうだけどパスが長すぎるでエラーもウザいよな
087212016/10/06(木) 19:42:42.97ID:???
>>871
それ解決するツール入れようとしたけどそれも駄目だった
087312016/10/06(木) 20:25:18.61ID:???
あーnpm本当嫌い
0874nobodyさん2016/10/06(木) 22:45:27.86ID:???
Linux上でやるのをおすすめ
Win10ならBash on Windowsでおk
0875nobodyさん2016/10/06(木) 23:01:33.48ID:???
この1週間全然進んでなさそうだな。
087612016/10/06(木) 23:09:47.63ID:???
全く進んでない
エラーで動かなすぎる
087712016/10/06(木) 23:10:07.60ID:???
>>874
ちょっと見てみる
087812016/10/07(金) 01:36:37.40ID:???
複雑すぎて全く分からない
作ったのに動かないとか一番つらい
0879nobodyさん2016/10/07(金) 09:47:59.65ID:???
Mac買え、Mac
0880nobodyさん2016/10/07(金) 16:42:01.77ID:???
>>877
開発者モードとかOnにしてbashってコマンドプロンプトで打ち込むだけだよ
088112016/10/07(金) 18:10:15.13ID:???
>>879
「Mac Book」でggった
"はるかに軽く。はるかに先へ。 148,800円(税別)から。"
3万くらいと思っていたら15万って
桁が違った

>>880
もう少ししてみる
0882nobodyさん2016/10/07(金) 18:11:56.44ID:???
MiBookにLinuxぶち込め
088312016/10/07(金) 18:12:56.85ID:???
ラズパイ3買おうかな…
088412016/10/07(金) 18:13:26.97ID:???
最近色々買い過ぎて金がない
この間コップ本買って5K吹っ飛んだし
088512016/10/07(金) 19:48:58.53ID:???
PowerShellとかあるのか
使ってみよう
0886nobodyさん2016/10/07(金) 20:35:16.02ID:???
http://qiita.com/Aruneko/items/c79810b0b015bebf30bb
Win10なんだからこれで
0887nobodyさん2016/10/07(金) 22:11:08.98ID:???
Docker使えDocker
vm感覚で使い捨て開発環境できてvmより遥かに軽い
まぁwinだとDockerでも色々罠があるのかもしらんが
088812016/10/07(金) 22:41:25.03ID:???
何かアンギュラー動かすだけで凄い大変だな
088912016/10/07(金) 23:05:04.97ID:???
angular-cliの問題かも
似たようなバグ報告が大量にあるから安定するの待ってみる
cli使わずにすることにした
089012016/10/07(金) 23:16:12.77ID:???
…他のソフトのせいにするなと言われそうだけど
0891nobodyさん2016/10/08(土) 11:32:44.04ID:???
Windows Subsystem for Linux (WSL) (Bash on Windows)は、
Linux API を、Windows API に変換するので、Ubuntu64 のバイナリがそのまま動く

apt-get で、パッケージもインストールできる

日本語も使える端末、ConEmu。
GUI表示用のXサーバー、Xming X Server for Windows
0892nobodyさん2016/10/08(土) 11:42:45.70ID:???
【Bash】Windows Subsystem for Linux【Ubuntu】2&#169;2ch.net
http://hayabusa6.2ch.net/test/read.cgi/linux/1468149353/
089312016/10/08(土) 11:48:11.14ID:???
色々インストールしすぎてCドライブがあと800MBしかない
0894nobodyさん2016/10/08(土) 12:37:04.68ID:???
wwwww
089512016/10/08(土) 15:46:00.17ID:???
ゴミ箱に3.8GBも入ってた
089612016/10/09(日) 00:18:30.93ID:???
アンギュラーエラー行数が出ないからデパッグが全く進まない
089712016/10/09(日) 16:29:53.56ID:???
動いたやったぜ
089812016/10/10(月) 01:13:25.44ID:???
最近コミットしてない
0899nobodyさん2016/10/11(火) 09:05:27.07ID:???
>>881
MacBookは新しいやつだから。
Airにしとけ
0900nobodyさん2016/10/11(火) 11:37:12.67ID:???
テストを……テストコードを書くのです
090112016/10/11(火) 18:05:34.47ID:???
900レス越えたか

>>899
そんなすぐは買えない
いつか欲しいな程度で

>>900
テストコードか…書いた事ないし何をすればいいか分からない
とにかく動かして直していくタイプだし
java本でもテストコードの所だけ読み飛ばしたしもう一度読んでみるか
090212016/10/11(火) 20:04:39.43ID:???
テストコードはかなり前から言われている気がするけど…
090312016/10/11(火) 21:03:13.89ID:???
CSS設定しないとダサすぎる
090412016/10/11(火) 21:51:06.07ID:???
順調に進みだした
090512016/10/11(火) 21:51:33.76ID:???
…分秒が記録されない謎
090612016/10/12(水) 00:19:49.49ID:???
NchServer
NchClient
NchUserConfig
リポジトリを名前変更&新規作成しました
上からサーバーアプリ、クライアントアプリ、ユーザー設定等(登録やパスワード、トークン等の設定など重要な物)です
NchLibというNchのライブラリリポジトリも作る予定です
090712016/10/12(水) 18:40:25.06ID:???
sql.Dateじゃなくてsql.Timestamp使わないといけないのかよ
090812016/10/12(水) 20:03:21.00ID:???
PHPより重くなった気がするんだけど
IDEとか色々立ち上げてローカル鯖でしているのが原因だといいんだが
0909nobodyさん2016/10/12(水) 20:22:35.47ID:???
見通しどうなってるの?
後1か月くらいでお目見え?
091012016/10/12(水) 20:27:54.69ID:???
>>909
まだCSS、デパッグ、セキュリティホールとか色々あるからな
モチベ次第
091112016/10/12(水) 20:29:44.04ID:???
CSS設定しないとレイアウトが酷すぎてとにかく醜い
091212016/10/12(水) 21:42:49.16ID:???
Bootstrapっていうの使ってみようかな
0913nobodyさん2016/10/13(木) 05:47:35.68ID:???
デザインはやりだすときりがないから後回しでいいと思うよ
091412016/10/13(木) 17:56:00.68ID:???
大体の色付け、文字の大きさとかは設定しないといけないし
綺麗にするのは後回しでいいだろうけど
全くCSS設定していないからデパッグするにも見にくすぎる
0915nobodyさん2016/10/13(木) 18:42:19.44ID:???
初めは2chと同じUIにしてCSSは後回しにしては?
0916nobodyさん2016/10/13(木) 18:55:15.83ID:???
デパッグじゃなくてデバッグね。
091712016/10/13(木) 19:05:41.62ID:???
>>915
レス表示だけなら2chと同じUIでいいけど、他が無理
0918nobodyさん2016/10/13(木) 19:37:28.89ID:???
bootstrapは覚えるのにちょっと時間かかるから
http://codepen.io
この辺から必要な部分コピペしたら?
091912016/10/13(木) 19:41:45.89ID:???
覚えるの時間掛かるなら後回しいいや
とりあえず最低限のサイズ、色付けしておこう
安っぽい2chみたいなUIになるけど
0920nobodyさん2016/10/13(木) 20:52:15.85ID:???
UIとか一番最後だろ
モデル層がしっかりしていれば後からいくらでも変えられるし
092112016/10/13(木) 21:00:07.81ID:???
モデルってサーバーサイドだよね
0922nobodyさん2016/10/13(木) 21:12:02.73ID:???
webだしまあそうだね
何にせよ今の段階で凝ったデザインにしてもしょうがないよな、分業してるわけじゃないし
092312016/10/13(木) 21:12:06.74ID:???
今こんな感じ
http://i.imgur.com/HGsA2WP.png
0924nobodyさん2016/10/13(木) 21:14:05.95ID:???
確認用には十分じゃない?ほかにどうしたいの
0925nobodyさん2016/10/13(木) 21:17:20.04ID:???
だな。確認用には十分だよね。
092612016/10/13(木) 21:27:32.41ID:???
何か見にくいなと思って
まあいいか
092712016/10/14(金) 00:17:14.50ID:???
画面更新(特にレス)が大変だな…
「N件の返信があります」の更新をするためには、新しく読み込んだレスのリプライ先を既に読み込んでいたら…とか色々必要なのか
0928nobodyさん2016/10/14(金) 06:36:54.36ID:???
>>918
getbootstrap.comもわすれない
0929nobodyさん2016/10/15(土) 01:14:03.46ID:???
まあ、わざわざスレ建ててんだからCSSくらいこのスレのやつにやらせてもいいんじゃね
俺ですら書こうと思えば書けるし
093012016/10/15(土) 10:04:47.08ID:???
複数人で開発するの慣れてないから大変な事になりそう
GitHubのプルリクとかそういう機能分からないし
093112016/10/15(土) 11:51:15.30ID:???
scalaのお陰でリスト操作関数覚えたけど、便利
全部定数縛りしてたらそういう関数使わないとまともに作れないし
093212016/10/15(土) 11:54:51.27ID:???
今までコンポーネントがデータを直接持っていたけど、idのみ持たせてstaticでMap<id,Obj>を定義したらデータ更新が楽になった
093312016/10/15(土) 16:30:23.18ID:???
日付がおかしいぞ
後曜日が英語
093412016/10/15(土) 16:33:30.56ID:???
TODO
書き込んでもトピックの日付が更新されない(スレッドフロートじゃない)
0935nobodyさん2016/10/15(土) 20:53:22.71ID:???
何が完成するのかイメージが沸かない
0936nobodyさん2016/10/16(日) 06:59:03.62ID:???
まあ、ここは1の愚痴スレにしかなってなくて、他の誰もが分からないからね
093712016/10/16(日) 11:11:35.51ID:???
>>935
もう少ししたら多分分かる


TODO
・msg、profile、通知機能
・お気に入り、タブも
0938nobodyさん2016/10/16(日) 12:38:00.62
がんばって
0939nobodyさん2016/10/16(日) 15:05:57.31ID:???
>>923の写真見る限り進んでるか。
でも、ここにいる無責任なギャラリーの一人としてもっと急いでくれと。
094012016/10/16(日) 16:16:09.99ID:???
急いではいるけど・・・
もっと早く作れるようになりたい
0941nobodyさん2016/10/16(日) 16:25:44.28ID:???
>>939
いやいや画面だけなら10分で作れるから
094212016/10/16(日) 16:26:37.08ID:???
10分って凄い
数時間掛かった…
094312016/10/16(日) 17:06:09.70ID:???
とりあえず次スレのスレタイと本文(未確定)
Nchリポジトリはまだ作ってないけど

【Scala】匿名掲示板Nch開発スレ part2【Angular2】


【Nchとは】
2chより高機能なオープンソースの掲示板
名前の由来は、Next New NumberなどのN+channel

【特徴】
・10秒で終わる簡単なユーザー登録が必要
・完全匿名
・マークダウンを使用可能
・2chとは非互換
・API公開
・自動管理を行う為荒らしに強い
・PC、スマホで同期可能な高機能WEBアプリ
・VIPのような単発スレには向かない。また安価スレは不可能

【GitHub】
最新情報、ソースを置いているリポジトリへのリンク等あり
https://github.com/kgtkr/Nch
0944nobodyさん2016/10/16(日) 18:31:31.39
nodejsで作れよ
094512016/10/16(日) 18:35:22.84ID:???
クライアントはangularだからnodeも入ってるよ
0946nobodyさん2016/10/16(日) 18:45:49.28
サーバだよ
expressとかで
094712016/10/16(日) 18:48:19.39ID:???
もうやめてくれ
PHP→java→scalaでやっと完成したのに
scalaに不満ないし
0948nobodyさん2016/10/16(日) 18:53:42.98
おk
094912016/10/16(日) 18:56:48.45ID:???
もう少しで最低限のUIは完成しそう
095012016/10/16(日) 21:36:38.20ID:???
1台のPCでEclipse、Tomcat、VSCode、Node、Chrome立ち上げたらスクリプト1行弄るだけで下の画像みたいな状態になって全く開発進まん
https://i.imgur.com/4kL1ygO.png
0951nobodyさん2016/10/17(月) 14:06:29.22ID:???
メモリいくつよ
0952nobodyさん2016/10/17(月) 16:27:35.45ID:???
4GBって前に言ってたよ。どのLivaか知らんが小さいLivaだって・・
0953nobodyさん2016/10/17(月) 17:33:30.19ID:???
4じゃきついわなあ、8でもちょっと、、、
095412016/10/17(月) 21:55:18.15ID:???
親がPCでブラウザくらいしか使わないからなー
0955nobodyさん2016/10/17(月) 23:02:09.19ID:???
俺も勉強用に1台Webサーバー組もうかと考え中だな。
CPU Celeron 4000円
メモリ 8GB 4000円
SSD 128GB 4000円
マザー 8000円
ケース 5000円
電源 3000円
3万ちょい。でも踏ん切りがつかん。
095612016/10/17(月) 23:08:47.11ID:???
SSDってそんなに安いのかよ
0957nobodyさん2016/10/17(月) 23:13:59.18ID:???
だな。256GBが安いので6000円くらいだし。
俺も君みたく2chat開発とか明確な目標があればポチれるんだけど、
結構曖昧なただの物欲なので踏ん切りがつかねぇ。
095812016/10/17(月) 23:15:37.41ID:???
最初メモリ2GB買う予定だったけど2GBにしなくて本当良かった
0959nobodyさん2016/10/17(月) 23:20:12.60ID:???
2GBはやばいね。タブ大目に開いてるブラウザとEclipse立ち上げたら
終わりそうだな。
0960nobodyさん2016/10/17(月) 23:22:01.67ID:???
さっさと2chat完成させてそれで稼いでいいマシン買おうぜ。
つか、大目じゃなうて多めだった。
096112016/10/17(月) 23:26:41.38ID:???
まずは鯖代の半分目指す
0962nobodyさん2016/10/17(月) 23:41:04.05ID:???
昨今Webプログラマとして健康で文化的な最低限度の生活を送るにはメモリ8GBは必要でしょ
096312016/10/17(月) 23:55:58.45ID:???
今のPC買ったときはC#だけ、javaだけとかでWEB鯖建てたりIDE沢山起動する必要もなかったからここまで重くなるとは思ってなかった
0964nobodyさん2016/10/18(火) 00:39:51.18
AWSの無料枠有能です
仮想化自宅サーバ有能です
0965nobodyさん2016/10/18(火) 11:54:47.46ID:???
AWS1年無料試すのいいかもね、クレカはいるけど
あと型落ちのNUCとか小型PCのセレロンかatomのベアボーン買ってきて
メモリとSSDは予算にあわせてサーバにするのもいいかも
0966nobodyさん2016/10/18(火) 11:55:51.37ID:???
ってラズパイあるんだっけ、リモートデバッグは厳しいのかな
096712016/10/18(火) 22:48:47.67ID:???
とりあえずwinで頑張ってみる
096812016/10/19(水) 19:04:12.38ID:???
来週一週間は開発休むかも
模試あるから
096912016/10/20(木) 00:54:47.21ID:???
クライアントアプリプッシュしました
097012016/10/20(木) 00:55:36.87ID:???
一通り完成したらローカルDBでキャッシュ作って高速化とかオフラインでも見れるようにしたいな
0971nobodyさん2016/10/21(金) 17:00:05.41
indexedDB
097212016/10/21(金) 17:23:00.39ID:???
そうそれ
まだしないけど
今はサービスの初期化に非同期通信入ってて色々困ってる
097312016/10/21(金) 17:42:46.83ID:???
async pipeとか言う便利そうな物発見
0974nobodyさん2016/10/21(金) 17:56:13.98
Promiseだいすき
097512016/10/21(金) 18:52:22.15ID:???
ライブラリが対応していないとPromiseも色々面倒
C#のTaskみたいにwaitで同期処理に出来たらいいのに
シングルスレッドじゃ面倒なのだろうか
0976nobodyさん2016/10/21(金) 19:15:38.83ID:???
co.js使ってgenerator function/yieldとか
Babel使ってES7 async/awaitとか
0977nobodyさん2016/10/21(金) 20:24:37.97ID:???
PromiseはPolyfillがあるので使い放題だと思うけど
097812016/10/21(金) 23:07:07.50ID:???
async pipe使ったらブラウザがフリーズした
内部で無限ループ起こってるみたい?
0979nobodyさん2016/10/22(土) 17:23:15.93
Promise最強よ
098012016/10/22(土) 20:19:20.40ID:???
クラウドって結局何なの?
VPSでいいのかな
0981nobodyさん2016/10/22(土) 20:36:37.18ID:???
クラウドって結局負荷に合わせて柔軟にメモリ、CPUとかを増やせるサービスって
ことじゃね??まぁ、高いからVPSでいいと思うけど。
098212016/10/22(土) 20:37:37.28ID:???
高いのか…
VPSにしよう
0983nobodyさん2016/10/22(土) 20:39:44.13ID:???
クラウドは、CPUあたりメモリ当たりとか高いよね。つか、クラウドだと
従量課金みたいなのもあるから、ユーザーいなかったら逆に安くなるとか・・?
0984nobodyさん2016/10/22(土) 21:58:13.07
GCPいいよー
0985nobodyさん2016/10/23(日) 00:10:33.65ID:???
http://qiita.com/umireon/items/20567bc8b4c6713d7591
http://d.hatena.ne.jp/megascus/touch/20140413/1397365082
Azure DreamSparkとWebAppなら遅いけどタダやで
098612016/10/23(日) 16:33:07.41ID:???
API重複コード多すぎるんだけど何とか出来ないかな
readNew系、readAfter系、readBefore系を上手くまとめたい
098712016/10/23(日) 16:35:07.37ID:???
文字列だから共通化が難しいと言うか・・・
どうしよう
098812016/10/23(日) 16:37:28.72ID:???
WEB.xml面倒だからアノテーション使ってみる
098912016/10/24(月) 23:39:56.41ID:???
とりあえず一通り機能出来た
あとはサーバーにある大量の脆弱性修正とか色々忘れている内部処理の追加、クライアントのお気に入り、タブ機能追加すればとりあえず完成
そろそろ次スレか
0990nobodyさん2016/10/24(月) 23:44:50.10ID:???
長かった
099112016/10/24(月) 23:46:25.70ID:???
脆弱性って言うのは人のプロフィールみたいな奴を勝手に変更出来たりとかいう奴
忘れている機能はDVされたときのレベルダウンとかその逆とか色々
お気に入り、タブはほぼクライアントだけで実装する
099212016/10/24(月) 23:49:33.30ID:???
長かったってまだ終わってない
とりあえず脆弱性修正すれば限定公開は出来る程度
099312016/10/24(月) 23:57:06.22ID:???
とりあえずプッシュ
099412016/10/25(火) 00:07:40.74ID:???
次スレ
http://tamae.2ch.net/test/read.cgi/php/1477321636/
0995nobodyさん2016/10/25(火) 14:20:07.49ID:???
0996nobodyさん2016/10/26(水) 15:47:36.21ID:???
うめ
099712016/10/26(水) 18:32:56.48ID:???
書き込み割れると面倒だから埋め
099812016/10/26(水) 18:33:06.83ID:???
998
099912016/10/26(水) 18:33:35.21ID:???
999
100012016/10/26(水) 18:34:11.42ID:???
lllllllll,,    llllllll             lllllll
llllllllllll,,     llllllll             llllll
llllllll lllll,,   llllllll      ,,,,,,,,,     lllllll ,,,,,,,,,,
llllllll 'lllll,,   lllllll   ,,lllllllllllllllllll,,   lllllll,llllll'''llllllll,
llllllll   'lllll, llllllll   ,llllll''   ''llllll   llllllll''   lllllll
llllllll   ''lllll, lllllll   lllllll         lllllll'     lllllll
llllllll     ''llllllllllll   lllllll,    lllllll'  lllllll     lllllll
llllllll      'lllllllll   ''lllllllllllllllllll''   lllllll     lllllll
''''''''       ''''''''     '''''''''''''     ''''''     ''''''
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 186日 4時間 48分 43秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。