hyudai28 / ft_irc

0 stars 0 forks source link

[REFACTOR]Server::loop()意味不明問題 #28

Closed fujishit closed 1 year ago

fujishit commented 1 year ago

[REFACTOR]Server::loop()意味不明問題

Server::loop()がごちゃってて可読性保守性共に死んでるので、改善案のメモと募集。

Comment

基本的に全部に適用できるのでアイデア集みたいなノリもある。 みんなでよりよいコードを書くためのアイデアだせたらいいな~~

問題の内容・実装箇所

とにかくコードがつめつめで、ごちゃごちゃしてるので改善する。

アイデア

Server::loop()をどうするかの例

void    Server::loop()
{
    //pollとエラー処理
    waitEvent();
    if (this->poll_fds[0].revents == POLLIN)
    {
        //ユーザーに対しacceptを行い、Server::user[n]を追加する。
        acceptUser();
    } else {
        /* 少し悩み中、やることはreceiveなんだけど、全部回さなきゃいけない。関数にするほど? */
        for (std::vector<pollfd>::iterator it = this->poll_fds.begin(); it != this->poll_fds.end(); ++it) {
            if ((*it).revents == POLLIN) {
                this->users[(*it).fd]->receive();
            }
        }
    }
    //ユーザーが退出していないか、退出していればそれの処理。
    checkLeaveUser();
}

多分これぐらいスッキリすればコメントなくても、あるいはない方がスッキリ見えると思う。 できれば関数の上にやることは書きたいから、コード中にはあんまり書かない(行数が増えない)ことが美徳じゃないかと考えてる。

Labels

refactor

Milestone

10/18 やりたいって思った

Assignee

fujishita-san

関連するissue

コミットメッセージに以下のフォーマットで記述すれば、自動的に該当Issue(#12)がCloseされる。

資料

hyudai28 commented 1 year ago

acceptで一回止めて、止めてる間に2人アクセスしてみる。 情報は消えるのか、二人とも受け入れられるのか

hyudai28 commented 1 year ago

これって今動くんだっけ?

fujishit commented 1 year ago

これって今動くんだっけ?

これがどれか分からないけど、pushしたやつは全部動くと思う

hyudai28 commented 1 year ago

あざっす、仕事終わって家帰ったら確認するわ

hyudai28 commented 1 year ago

ちょっと帰ってからパース書きたいから付き合ってほしい21:00-23:00

fujishit commented 1 year ago

りょ