<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Zhenly</title>
  <icon>https://blog.zhenly.cn/icon.png</icon>
  <subtitle>Blog Time</subtitle>
  <link href="/atom.xml" rel="self"/>
  
  <link href="https://blog.zhenly.cn/"/>
  <updated>2020-05-16T04:56:50.000Z</updated>
  <id>https://blog.zhenly.cn/</id>
  
  <author>
    <name>ZhenlyChen</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>🗼 Design | “闲得一币” 数据库设计</title>
    <link href="https://blog.zhenly.cn/Desgin/time_for_coin_db_design/"/>
    <id>https://blog.zhenly.cn/Desgin/time_for_coin_db_design/</id>
    <published>2020-02-17T08:28:00.000Z</published>
    <updated>2020-05-16T04:56:50.000Z</updated>
    
    <summary type="html">
    
      &lt;p&gt;今天需要查一点东西翻到一篇老文档，发现其中内容对于数据库系统的设计还是有一点有参考价值的，所以整理一下发一篇博客，记录一下半年前设计的数据库和一些思考。其中包括基本的设计原则以及具体设计的细节部分。&lt;/p&gt;
    
    </summary>
    
    
      <category term="Design" scheme="https://blog.zhenly.cn/categories/Design/"/>
    
    
      <category term="Design" scheme="https://blog.zhenly.cn/tags/Design/"/>
    
      <category term="MongoDB" scheme="https://blog.zhenly.cn/tags/MongoDB/"/>
    
      <category term="Web" scheme="https://blog.zhenly.cn/tags/Web/"/>
    
  </entry>
  
  <entry>
    <title>🌎 Web | 使用 React Hooks 与 TypeScript 构建项目</title>
    <link href="https://blog.zhenly.cn/Web/react_hook_and_typescript/"/>
    <id>https://blog.zhenly.cn/Web/react_hook_and_typescript/</id>
    <published>2019-08-24T07:36:27.000Z</published>
    <updated>2020-05-16T04:59:20.000Z</updated>
    
    <summary type="html">
    
      &lt;p&gt;今天本来想给 Violet 加上移动端的界面，使用 &lt;code&gt;material-ui&lt;/code&gt; 作为组件库。但是如果在原来的基础上添加又异常蛋疼，因为这个组件库的示例是基于最新的 React Hooks 使用的，而我的项目中全都是 Class 的用法。Hooks 的思想可以极大提高组件的可复用性，据说 Vue 3.0 也是推荐这种用法，早就想使用 Hooks 重构一遍但无奈又没有时间，今天正好搞一下，这样一来，就可以使用 Hook 将移动端和PC端的逻辑进行复用。&lt;/p&gt;
&lt;p&gt;在现在这个时间点，对于单页面 Web 应用的框架我是更喜欢使用 React 的，就是因为他对于 TypeScript 的支持比较完善。老实说，用了 TypeScript 之后就再也不想碰 JavaScript 了，他的类型推断和代码跟踪结合 VSCode 使得我几乎可以完全脱离文档使用，带有类型的代码就是最好的文档。&lt;/p&gt;
    
    </summary>
    
    
      <category term="Web" scheme="https://blog.zhenly.cn/categories/Web/"/>
    
    
      <category term="Web" scheme="https://blog.zhenly.cn/tags/Web/"/>
    
      <category term="React" scheme="https://blog.zhenly.cn/tags/React/"/>
    
      <category term="TypeScript" scheme="https://blog.zhenly.cn/tags/TypeScript/"/>
    
  </entry>
  
  <entry>
    <title>🐀 Go | 使用中间件简化 Golang 中的错误处理</title>
    <link href="https://blog.zhenly.cn/Go/go_web_assert/"/>
    <id>https://blog.zhenly.cn/Go/go_web_assert/</id>
    <published>2019-06-28T07:28:00.000Z</published>
    <updated>2020-05-16T04:56:34.000Z</updated>
    
    <summary type="html">
    
      &lt;p&gt;在 Golang 的开发中，我们通常需要在代码中所有可能发生的每个地方处理错误，这种做法虽然安全，但是非常麻烦，尤其是当使用 Golang 开发 Web 服务端的时候，需要处理的错误也就更多了。这里我结合了之前一些项目的经验，利用中间件和 Golang 中 panic 和 recover 机制，极大地简化了其错误处理方式，提高了代码的可读性和精简程度。&lt;/p&gt;
    
    </summary>
    
    
      <category term="Golang" scheme="https://blog.zhenly.cn/categories/Golang/"/>
    
    
      <category term="Code" scheme="https://blog.zhenly.cn/tags/Code/"/>
    
      <category term="Golang" scheme="https://blog.zhenly.cn/tags/Golang/"/>
    
      <category term="Web" scheme="https://blog.zhenly.cn/tags/Web/"/>
    
  </entry>
  
  <entry>
    <title>🌎 Web | 使用 Travis CI 实现自动测试并部署</title>
    <link href="https://blog.zhenly.cn/Web/docker_ci_deploy/"/>
    <id>https://blog.zhenly.cn/Web/docker_ci_deploy/</id>
    <published>2019-06-28T05:27:27.000Z</published>
    <updated>2020-05-16T04:59:20.000Z</updated>
    
    <summary type="html">
    
      &lt;p&gt;最近开了个新的项目，由于涉及到多人的协作，为了便于前端的开发，我把服务器部署到腾讯云的服务器上，并且利用 Travis CI 实现了从提交代码、运行测试、构建Docker镜像到部署服务的自动化流程。&lt;/p&gt;
    
    </summary>
    
    
      <category term="Web" scheme="https://blog.zhenly.cn/categories/Web/"/>
    
    
      <category term="Web" scheme="https://blog.zhenly.cn/tags/Web/"/>
    
      <category term="Docker" scheme="https://blog.zhenly.cn/tags/Docker/"/>
    
      <category term="Ci" scheme="https://blog.zhenly.cn/tags/Ci/"/>
    
  </entry>
  
  <entry>
    <title>🎨 CG | 使用状态同步实现在线 3D 贪吃蛇</title>
    <link href="https://blog.zhenly.cn/CG/OpenGL_NetworkGame/"/>
    <id>https://blog.zhenly.cn/CG/OpenGL_NetworkGame/</id>
    <published>2019-06-14T11:57:00.000Z</published>
    <updated>2020-05-16T04:59:30.000Z</updated>
    
    <summary type="html">
    
      &lt;p&gt;在上一次的实验中，我们使用 OpenGL 实现了 3D贪吃蛇，这次，使用状态同步技术，将其改造成联网的3D多人在线贪吃蛇。&lt;/p&gt;
&lt;p&gt;🚀 代码: &lt;a href=&quot;https://github.com/ZhenlyChen/RetroSnaker&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Github&lt;/a&gt;&lt;/p&gt;
    
    </summary>
    
    
      <category term="CG" scheme="https://blog.zhenly.cn/categories/CG/"/>
    
    
      <category term="CG" scheme="https://blog.zhenly.cn/tags/CG/"/>
    
      <category term="OpenGL" scheme="https://blog.zhenly.cn/tags/OpenGL/"/>
    
      <category term="Game" scheme="https://blog.zhenly.cn/tags/Game/"/>
    
      <category term="Network" scheme="https://blog.zhenly.cn/tags/Network/"/>
    
  </entry>
  
  <entry>
    <title>🎨 CG | 使用 OpenGL 实现 3D 贪吃蛇</title>
    <link href="https://blog.zhenly.cn/CG/OpenGL_RetroSnaker/"/>
    <id>https://blog.zhenly.cn/CG/OpenGL_RetroSnaker/</id>
    <published>2019-05-24T07:57:00.000Z</published>
    <updated>2020-05-16T04:59:28.000Z</updated>
    
    <summary type="html">
    
      &lt;p&gt;&lt;img src=&quot;/CG/OpenGL_RetroSnaker/1558526123236.png&quot; alt=&quot;1558526123236&quot;&gt;&lt;/p&gt;
&lt;p&gt;本文记录了使用 OpenGL 实现一个 3D 贪吃蛇的完整过程。从建立游戏框架到设计游戏逻辑，最后加入动画效果，形成一个真正可玩的小游戏。&lt;/p&gt;
&lt;p&gt;🚀 代码: &lt;a href=&quot;https://github.com/ZhenlyChen/RetroSnaker&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Github&lt;/a&gt;&lt;/p&gt;
    
    </summary>
    
    
      <category term="CG" scheme="https://blog.zhenly.cn/categories/CG/"/>
    
    
      <category term="CG" scheme="https://blog.zhenly.cn/tags/CG/"/>
    
      <category term="OpenGL" scheme="https://blog.zhenly.cn/tags/OpenGL/"/>
    
      <category term="Game" scheme="https://blog.zhenly.cn/tags/Game/"/>
    
  </entry>
  
  <entry>
    <title>🎨 CG | OpenGL 动态绘制 Bezier Curve</title>
    <link href="https://blog.zhenly.cn/CG/OpenGL_BezierCurve/"/>
    <id>https://blog.zhenly.cn/CG/OpenGL_BezierCurve/</id>
    <published>2019-05-23T08:44:00.000Z</published>
    <updated>2020-05-16T04:59:30.000Z</updated>
    
    <summary type="html">
    
      &lt;p&gt;本文使用 OpenGL 实现一个实时绘制 Bezier 曲线的小工具，并且动态实现其绘制过程。&lt;/p&gt;
&lt;p&gt;🚀 代码: &lt;a href=&quot;https://github.com/ZhenlyChen/Computer-Graphics&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Github&lt;/a&gt;&lt;/p&gt;
    
    </summary>
    
    
      <category term="CG" scheme="https://blog.zhenly.cn/categories/CG/"/>
    
    
      <category term="C++" scheme="https://blog.zhenly.cn/tags/C/"/>
    
      <category term="CG" scheme="https://blog.zhenly.cn/tags/CG/"/>
    
      <category term="OpenGL" scheme="https://blog.zhenly.cn/tags/OpenGL/"/>
    
  </entry>
  
  <entry>
    <title>📋 PM | 用例/领域建模</title>
    <link href="https://blog.zhenly.cn/PM/usecase_modeling/"/>
    <id>https://blog.zhenly.cn/PM/usecase_modeling/</id>
    <published>2019-05-22T06:55:00.000Z</published>
    <updated>2020-05-16T05:10:50.000Z</updated>
    
    <summary type="html">
    
      &lt;p&gt;这里来探讨一下有关软件的本质与软件工程科学的一些概念&lt;/p&gt;
&lt;p&gt;这次主要关注面向对象分析与设计中的&lt;strong&gt;用例建模&lt;/strong&gt;&lt;/p&gt;
    
    </summary>
    
    
      <category term="PM" scheme="https://blog.zhenly.cn/categories/PM/"/>
    
    
      <category term="PM" scheme="https://blog.zhenly.cn/tags/PM/"/>
    
      <category term="软件工程" scheme="https://blog.zhenly.cn/tags/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/"/>
    
  </entry>
  
  <entry>
    <title>🎨 CG | OpenGL 中的阴影</title>
    <link href="https://blog.zhenly.cn/CG/OpenGL_Shadowing/"/>
    <id>https://blog.zhenly.cn/CG/OpenGL_Shadowing/</id>
    <published>2019-05-08T13:15:00.000Z</published>
    <updated>2020-05-16T04:59:28.000Z</updated>
    
    <summary type="html">
    
      &lt;p&gt;在 OpenGL 中实现阴影以及进行进一步优化&lt;/p&gt;
&lt;p&gt;🚀 代码: &lt;a href=&quot;https://github.com/ZhenlyChen/Computer-Graphics&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Github&lt;/a&gt;&lt;/p&gt;
    
    </summary>
    
    
      <category term="CG" scheme="https://blog.zhenly.cn/categories/CG/"/>
    
    
      <category term="C++" scheme="https://blog.zhenly.cn/tags/C/"/>
    
      <category term="CG" scheme="https://blog.zhenly.cn/tags/CG/"/>
    
      <category term="OpenGL" scheme="https://blog.zhenly.cn/tags/OpenGL/"/>
    
  </entry>
  
  <entry>
    <title>🎨 CG | OpenGL 中的光照</title>
    <link href="https://blog.zhenly.cn/CG/OpenGL_Lights/"/>
    <id>https://blog.zhenly.cn/CG/OpenGL_Lights/</id>
    <published>2019-04-25T17:15:00.000Z</published>
    <updated>2020-05-16T04:59:30.000Z</updated>
    
    <summary type="html">
    
      &lt;p&gt;这次 OpenGL 中实现 Phong 光照模型以及 Gouraud 光照光照模型&lt;/p&gt;
&lt;p&gt;🚀 代码: &lt;a href=&quot;https://github.com/ZhenlyChen/Computer-Graphics&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Github&lt;/a&gt;&lt;/p&gt;
    
    </summary>
    
    
      <category term="CG" scheme="https://blog.zhenly.cn/categories/CG/"/>
    
    
      <category term="C++" scheme="https://blog.zhenly.cn/tags/C/"/>
    
      <category term="CG" scheme="https://blog.zhenly.cn/tags/CG/"/>
    
      <category term="OpenGL" scheme="https://blog.zhenly.cn/tags/OpenGL/"/>
    
  </entry>
  
  <entry>
    <title>🎨 CG | OpenGL 中的摄像机</title>
    <link href="https://blog.zhenly.cn/CG/OpenGL_Camera/"/>
    <id>https://blog.zhenly.cn/CG/OpenGL_Camera/</id>
    <published>2019-04-15T05:44:00.000Z</published>
    <updated>2020-05-16T04:59:30.000Z</updated>
    
    <summary type="html">
    
      &lt;p&gt;​ 之前在 OpenGL 中，已经创建了各种形状，这一次来创建一个摄像机，使得我们可以任意移动，从各个角度观察创建的物理。虽然 OpenGL 本身没有&lt;strong&gt;摄像机&lt;/strong&gt;(Camera)的概念，但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机，产生一种&lt;strong&gt;我们&lt;/strong&gt;在移动的感觉，而不是场景在移动。&lt;/p&gt;
&lt;p&gt;🚀 代码: &lt;a href=&quot;https://github.com/ZhenlyChen/Computer-Graphics&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Github&lt;/a&gt;&lt;/p&gt;
    
    </summary>
    
    
      <category term="CG" scheme="https://blog.zhenly.cn/categories/CG/"/>
    
    
      <category term="C++" scheme="https://blog.zhenly.cn/tags/C/"/>
    
      <category term="CG" scheme="https://blog.zhenly.cn/tags/CG/"/>
    
      <category term="OpenGL" scheme="https://blog.zhenly.cn/tags/OpenGL/"/>
    
  </entry>
  
  <entry>
    <title>🎨 CG | Blender 骨骼动画制作</title>
    <link href="https://blog.zhenly.cn/CG/Blender_BoneAnimation/"/>
    <id>https://blog.zhenly.cn/CG/Blender_BoneAnimation/</id>
    <published>2019-04-07T13:15:00.000Z</published>
    <updated>2020-05-16T04:59:30.000Z</updated>
    
    <summary type="html">
    
      &lt;p&gt;使用 Blender 制作骨骼动画，最后得到一个走着六亲不认步伐的小人&lt;/p&gt;
    
    </summary>
    
    
      <category term="CG" scheme="https://blog.zhenly.cn/categories/CG/"/>
    
    
      <category term="Blender" scheme="https://blog.zhenly.cn/tags/Blender/"/>
    
      <category term="CG" scheme="https://blog.zhenly.cn/tags/CG/"/>
    
  </entry>
  
</feed>
