ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【博客之星】2024年度创作发展总结 - 面朝大海 ,春暖花开! [打印本页]

作者: 曹旭辉    时间: 2025-1-24 00:38
标题: 【博客之星】2024年度创作发展总结 - 面朝大海 ,春暖花开!

   没关系的,大家都会做错选择,会      莫名其妙掉眼泪,走在路上会忽然崩溃,        但这并不影响我们去看看晚霞,          再次爱上这个天下。            

  
about me

现在我是一名24级盘算机类的大一门生。从23年高考毕业正式接触编程,其时十分想要报名盘算机专业,但是阴差阳错成为了山东大学威海校区电子信息类的门生。这种错过空想的感受让我沮丧的一段时间。这天下上总有突如其来的失去,洒了的牛奶,.遗失的钱包,走散的爱人,断掉的友情等等,当你做什么都于事无补的时间,唯一能做的,就是让自己过得好一点。丢都丢了,就别再哭了。”
于是我们发愤要举行转专业,转入盘算机专业。同时暑假我开始了C语言的学习,正式踏入到了程序天下,开始以一种全新的视角开始审视这个天下。也正式成为一名创作者,在CSDN平台开始了创作道路!
在大一上学期,我得知我们努力将绩点保持在前10%,我以为大一下年度的转专业一定会顺遂通过,但命运总会和我开一个打趣:我与转专业线差之毫厘,仅仅0.7%的绩点排名差距。
至此,我以为我与科班生就没有关系了,开始努力学习盘算机四大件,学校课程基本都是水过去的。没有想到的是,在大二上的转专业中,我不测的得到了转专业名额,正式的成为了24级盘算机科班生。
这一路,真可谓是 生活难免曲折,但要相信你的运气!
Review

在2024年中,我创作了160篇文章,累积博客阅读量32万,均匀2.2天就可以创作一篇文章。回过头来看,针对真的很难想象我创作的频率云云之高,真的要感激2024努力的自己!

在2024博客之星评比中入围了TOP300名单,这是对每一位用心创作的创作者的最大的夸奖!

在这一年中我学习了数据结构,盘算机网络,Linux系统编程 ,网络编程。对于学习的每一个知识点都会举行总结,写出博客举行发布,坚持了一年,让我写作能力大大提拔,敲键盘的硬素质也得到了质的提拔!!!
在学校中,虽然没有努力学习课程,但幸运的得到了山东大学专长奖学金,这无疑是对我硕大的激励!
2024年,我也初步开始接触算法竞赛。年初先从简单的蓝桥杯开始,蓝桥杯省赛得到了二等奖,这时的我还只会利用暴力解法,基本一点算法思维都没有。半年后到场了WCPC威海市程序设计大赛,这是第一次到场ACM赛制的比赛,团队合作举行解题,但遗憾的是我们并没有得到奖项,算法的路依旧漫长!目前累积刷题270道:

24年我完成了两个项目:

高并发服务器项目标实现中,我由衷的感到c++功力的强大,通过层层套接封装,可以实现一个云云复杂却又简明的服务器框架,下面是我24年最感到佩服的代码!
  1. // 最终模块 --- TcpServer
  2. class TcpServer
  3. {
  4. private:
  5.     uint64_t _conn_id;                            // 自增长的连接ID;
  6.     int _port;                                    // 绑定的端口号
  7.     EventLoop _baseloop;                          // 主Reactor模型
  8.     Acceptor _acceptor;                           // 监听套接字
  9.     LoopThreadPool _pool;                         // 从属线程池
  10.     std::unordered_map<uint64_t, PtrConn> _conns; // 管理连接的哈希表
  11.     int _timeout;                                 // 超时时间
  12.     bool _enable_active_release;                  // 是否开启超时销毁 默认是false
  13.     // 4种 回调函数 --- 注意使用智能指针 防止在执行任务之前Connection销毁
  14.     using ConnectedCallBack = std::function<void(const PtrConn &)>;         // 连接时进行的回调函数
  15.     using MessageCallBack = std::function<void(const PtrConn &, Buffer *)>; // 处理数据时的回调函数
  16.     using ClosedCallBack = std::function<void(const PtrConn &)>;            // 关闭连接时的回调函数
  17.     using AnyEventCallBack = std::function<void(const PtrConn &)>;          // 处理任意事件时的回调函数
  18.     ConnectedCallBack _conn_cb;  // 连接回调函数类型
  19.     MessageCallBack _message_cb; // 处理时回调函数
  20.     ClosedCallBack _closed_cb;   // 关闭阶段的回调
  21.     AnyEventCallBack _event_cb;  // 任意事件触发的回调
  22. private:
  23.     void RunAfterInLoop(int sec, const Functor &func)
  24.     {
  25.         _conn_id++;
  26.         _baseloop.TimerAdd(_conn_id, sec, func);
  27.     }
  28.     // 对新连接的处理
  29.     void NewConnction(int newfd)
  30.     {
  31.         // 创建新的fd的channel
  32.         _conn_id++;
  33.         PtrConn conn(new Connection(_pool.NextLoop(), _conn_id, newfd));
  34.         LOG(DEBUG, "新Connection建立 fd :%d\n", conn->Fd());
  35.         // 设置回调函数
  36.         conn->SetMessageCB(_message_cb);
  37.         conn->SetClosedCB(_closed_cb);
  38.         conn->SetConnectCB(_conn_cb);
  39.         conn->SetAnyEventCB(_event_cb);
  40.         conn->SetSvrClosedCB(std::bind(&TcpServer::RemoveConnection, this, std::placeholders::_1));
  41.         conn->EnableInactiveRelease(_timeout); // 启动非活跃销毁功能
  42.         conn->Established();                   // 进行就绪初始化!
  43.         // LOG(DEBUG, "Connection初始化就绪\n");
  44.         // 非活跃连接的超时释放操作
  45.         _conns.insert(std::make_pair(_conn_id, conn));
  46.     }
  47.     void RemoveConnectionInLoop(const PtrConn &conn)
  48.     {
  49.         uint64_t id = conn->Id();
  50.         auto it = _conns.find(id);
  51.         if (it != _conns.end())
  52.         {
  53.             _conns.erase(id);
  54.         }
  55.     }
  56.     void RemoveConnection(const PtrConn &conn)
  57.     {
  58.         _baseloop.RunInLoop(std::bind(&TcpServer::RemoveConnectionInLoop, this, conn));
  59.     }
  60. public:
  61.     TcpServer(int port) : _conn_id(0),
  62.                           _port(port),
  63.                           _baseloop(),
  64.                           _acceptor(&_baseloop, _port),
  65.                           _pool(&_baseloop),
  66.                           _timeout(0),
  67.                           _enable_active_release(false)
  68.     {
  69.         _acceptor.SetAcceptCallBack(std::bind(&TcpServer::NewConnction, this, std::placeholders::_1));
  70.     }
  71.     //  设置回调函数
  72.     void SetConnectCB(const ConnectedCallBack &cb) { _conn_cb = cb; }
  73.     void SetMessageCB(const MessageCallBack &cb) { _message_cb = cb; }
  74.     void SetClosedCB(const ClosedCallBack &cb) { _closed_cb = cb; }
  75.     void SetAnyEventCB(const AnyEventCallBack &cb) { _event_cb = cb; }
  76.     // 开启超时销毁
  77.     void EnableActiveRelease(int timeout)
  78.     {
  79.         _timeout = timeout;
  80.         _enable_active_release = true;
  81.     }
  82.     // 添加定时任务
  83.     void RunAfter(int sec, const Functor &func)
  84.     {
  85.         _baseloop.RunInLoop(std::bind(&TcpServer::RunAfterInLoop, this, sec, func));
  86.     }
  87.     // 设置线程池数量
  88.     void SetThreadSize(int size) { return _pool.SetLoopThreadSize(size); }
  89.     // 服务器开始运行
  90.     void Start()
  91.     {
  92.         // LOG(DEBUG, "Start()\n");
  93.         _acceptor.Listen();
  94.         _pool.Create();
  95.         _baseloop.Start();
  96.     }
  97. };
  98. void Channel::Remove() { return _loop->RemoveEvent(this); }
  99. // 更新Channel的事件监控
  100. void Channel::Update() { return _loop->UpdateEvent(this); }
  101. void TimeWheel::TimerAdd(uint64_t id, int delay, Task_t cb)
  102. {
  103.     _loop->RunInLoop(std::bind(&TimeWheel::TimerAddInloop, this, id, delay, cb));
  104. }
  105. void TimeWheel::TimerRefresh(uint64_t id)
  106. {
  107.     _loop->RunInLoop(std::bind(&TimeWheel::TimerRefreshInloop, this, id));
  108. }
  109. void TimeWheel::TimerCancel(uint64_t id)
  110. {
  111.     _loop->RunInLoop(std::bind(&TimeWheel::TimerCancelInLoop, this, id));
  112. }
复制代码
目前正在完成第三个项目:仿RabbitMQ实现消息队列。
这三个项目是我25年暑期夺取实习时机的紧张保证!
Life

创作之余,游戏与活动是我风俗的放松方式。
与舍友一起开黑的时光真的治愈身心,每天学习完回到宿舍就是一句:瓦!目前是一名黄金玩家,还需努力哈哈!下面是我最喜欢的脚色 cypher

为班级征战的篮球赛真的振奋人心,活动总会让我忘记烦恼,沉浸在汗水与呐喊中,一点一点的感受身体的脉动!

这学期也开始了健身,卧推极限到达了65KG,到达了自重。这也让我十分开心哈哈哈,健壮的身体真的让我开心哈哈哈
2024年我前去杭州千岛湖,与友人共度高兴时光;漫步九寨沟,与兄弟们深度体验天然异景;抵达北京,亲历庄严的升旗仪式!

对于未来,我感觉依然充满不确定性,但没关系的,大家都会做错选择,会莫名其妙掉眼泪,走在路上会忽然崩溃,但这并不影响我们去看看晚霞,再次爱上这个天下。我相信没有一颗星,会由于追求空想而受伤,当我至心渴望某样东西时,整个宇宙都会来帮忙。
大厂offer,请你一定等着我!!!
大厂offer,请你一定等着我!!!
大厂offer,请你一定等着我!!!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4