我的创作纪念日

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。

🍎个人主页:Java Fans的博客

🍊个人信条:不迁怒,不贰过。小知识,大智慧。

✨特色专栏:国学周更-心性养成之路

🥭本文内容:我的创作纪念日

文章目录

机缘

2022年的8月13日,那天我注册了CSDN,也写下了我的第一篇博文:"1、前端开发:HTML知识总结------网页结构",依稀记得,我用CSDN的初衷,是为了学习成长,目标是希望自己能成为IT界的技术大牛!

秉持着那份初心,我就时常将自己所学所总结的小技巧分享在CSDN中,为许多也在同样领域的朋友,送去一份分享,便于他们在某块知识学习时遇到了疑惑,而搜不到完整的解决方案提供一份有参考价值的博文!

下面我将从以下几点分享我成为创作者的初心:

(1) 实战项目中的经验分享

以Java实战项目举例,以下是一些经验分享:

项目规划与设计: 在开始项目之前,确保对需求有清晰的理解。进行详细的项目规划和设计,包括系统架构、数据库设计、模块划分等。这有助于减少后续的重构和调整。

选择合适的框架和工具: 根据项目需求,选择适合的Java框架,如Spring或Spring Boot。合理使用开源工具和库可以提高开发效率。

代码质量和可维护性: 编写清晰、可读性强的代码。遵循编码规范和设计原则,使用适当的命名和注释。通过单元测试和集成测试确保代码的质量和可靠性。

版本控制: 使用版本控制系统(如Git)来跟踪代码的变化。这有助于多人协作,同时能够回溯和恢复以前的代码状态。

敏捷开发: 采用敏捷开发方法,将项目分解成小的可交付功能,每个功能都有明确的目标和时间表。这有助于项目逐步推进,并及时应对变化。

性能优化: 在开发过程中考虑系统的性能。使用合适的数据结构和算法,避免不必要的数据库查询,进行合理的缓存和优化。

安全性考虑: 在项目中注重安全性,防范常见的安全漏洞,如SQL注入、跨站脚本等。确保用户数据的保密性和完整性。

持续集成和部署: 使用持续集成工具(如Jenkins)自动构建、测试和部署代码。这有助于减少手动操作,确保代码的稳定性。

团队协作: 良好的团队协作至关重要。定期进行沟通和协调,共享进展和问题。使用协作工具和平台,如Slack、JIRA等。

学习和改进: 持续学习新的技术和最佳实践,及时对项目进行改进。定期回顾项目经验,总结教训和成功经验。

(2) 日常学习过程中的记录

按照技术方向的不同,将自己学习的技术,通过不同板块的归纳总结,分享学习技术的博文给不同领域的博友们!


收获

谈收获的话,我觉得最大收获,是自我的成长;在分享的同时,看似是在帮助别人提供技术分享,实则是自己巩固了所学知识以及为自己后面反复用到相关技术提供了可回顾的技术文档。

当然,除此之外,我还获得了以下种种收获:


1. 获得了4万粉丝的关注
2. 获得了超过百万的阅读量;8000左右的点赞量、收藏量以及评论量。
3. 获得了2022年度博客新星第八名,并获取了实物小米手环的奖励。
4. 参加过各种官方活动,获得过书包、布袋、杯子、奖牌、各种摆件等实物奖品。
5. 当然,最最重要的是,收获了一群志同道合的朋友。


日常

创作与我的工作和学习之间确实有着紧密的联系,成为了我生活的重要组成部分。作为一个IT编程人员,面对市场技术的革新,我们要不断的学习和充电,然后再将新知识应用到自己实际的工作领域,在学习与实践的摩擦中,保持着创作和总结的初衷,将技术不断地优化,来提高自己的创造力和价值。

  • CSDN已经不自觉的成为生活一部分: 对我来说,CSDN 已经融入了我的日常生活中。我的手机里每日必点开的一个软件就是 CSDN;无论是创作一篇博文,还是我与博友们的的互动,每次互动,都是一次创作的过程,旨在为他们提供有价值的信息和帮助。

  • 平衡创作与工作学习: 就像我们日常工作一样,平衡创作与工作学习中的关系也是我的一门功课。首先我得以工作为主,在工作完成之余,我也需要不断学习新知识、理解新技术和趋势。这有助于保持我的内容更新和准确性。同时,我也需要注意避免过度劳累,以保持创作的质量和稳定性。

  • 创作驱动工作学习: 创作不仅是回应用户的需求,还可以驱动我的工作学习。通过创作,我能更深入地理解各种主题,将抽象的概念转化为易于理解的语言。创作过程中,我也会发现一些新的问题或者领域,这会促使我进行更深入的学习,以提供更准确和详细的信息。

总体而言,创作已经成为我与世界互动的方式,也帮助我保持对不断变化的知识和技术前沿的敏感度。


成就

这个板块里,我就不多说了,分享一下我还未发布的一篇技术博文吧!

Spring Boot和Layui框架实现一周免登录功能

创建一个名为User的实体类,用于表示用户信息,其中包含用户的用户名和密码等字段,以及用于标记用户是否选择一周免登陆的rememberMe字段。

java 复制代码
@Entity
@Table(name = "users")
public class User implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(unique = true, nullable = false)
    private String username;

    @Column(nullable = false)
    private String password;

    private boolean rememberMe;

    // Getters and Setters
    // ...
}

创建一个名为UserRepository的接口,用于对User实体进行数据库操作。

java 复制代码
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    User findByUsername(String username);
}

创建一个名为UserService的服务类,用于处理用户相关的业务逻辑。在这个类中,添加一个方法用于验证用户的登录,并根据用户是否选择一周免登陆来设置相关的Cookie。

java 复制代码
@Service
public class UserService {
    private UserRepository userRepository;

    @Autowired
    public void setUserRepository(UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    public boolean login(String username, String password, boolean rememberMe, HttpServletResponse response) {
        User user = userRepository.findByUsername(username);
        if (user != null && user.getPassword().equals(password)) {
            if (rememberMe) {
                // 设置一周免登陆的Cookie,有效期为7天
                Cookie cookie = new Cookie("rememberMe", "true");
                cookie.setMaxAge(7 * 24 * 60 * 60);  // 7天的秒数
                cookie.setPath("/");
                response.addCookie(cookie);
                user.setRememberMe(true);
                userRepository.save(user);
            }
            return true;
        }
        return false;
    }
}

创建一个名为LoginController的控制器类,用于处理用户登录的请求。

java 复制代码
@Controller
public class LoginController {
    private UserService userService;

    @Autowired
    public void setUserService(UserService userService) {
        this.userService = userService;
    }

    @RequestMapping("/login")
    public String login(String username, String password, boolean rememberMe, HttpServletResponse response) {
        if (userService.login(username, password, rememberMe, response)) {
            return "redirect:/home";  // 登录成功后跳转到主页
        }
        return "redirect:/login?error";  // 登录失败跳转回登录页面,并带上错误参数
    }
}

在对应的登录页面中使用Layui框架的表单组件,将用户名、密码和记住我选项组织成一个表单,并向LoginController的登录请求发送POST请求。

html 复制代码
<!DOCTYPE html>
<html>
<head>
    <title>登录</title>
    <!-- 引入Layui的相关资源 -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.4/css/layui.min.css">
    <script src="https://cdn.staticfile.org/layui/2.5.4/layui.min.js"></script>
</head>
<body>
    <div class="layui-container">
        <form class="layui-form" action="/login" method="post">
            <div class="layui-form-item">
                <label class="layui-form-label">用户名</label>
                <div class="layui-input-block">
                    <input type="text" name="username" lay-verify="required" autocomplete="off" placeholder="请输入用户名" class="layui-input">
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label">密码</label>
                <div class="layui-input-block">
                    <input type="password" name="password" lay-verify="required" autocomplete="off" placeholder="请输入密码" class="layui-input">
                </div>
            </div>
            <div class="layui-form-item">
                <div class="layui-input-block">
                    <input type="checkbox" name="rememberMe" title="记住我" lay-skin="primary">
                    <button class="layui-btn" lay-submit lay-filter="formDemo">登录</button>
                </div>
            </div>
        </form>
    </div>

    <script>
        layui.use(['form'], function() {
            var form = layui.form;

            // 表单验证
            form.verify({
                required: function(value, item) {
                    if(value.length < 1) {
                        return '该项不能为空';
                    }
                }
            });

            // 监听表单提交
            form.on('submit(formDemo)', function(data) {
                // 获取表单数据并提交
                var username = data.field.username;
                var password = data.field.password;
                var rememberMe = data.field.rememberMe === 'on';

                // 发送AJAX请求提交登录表单
                $.ajax({
                    url: '/login',
                    type: 'POST',
                    data: {
                        username: username,
                        password: password,
                        rememberMe: rememberMe
                    },
                    success: function(res) {
                        // 登录成功后的逻辑处理
                        if (res.success) {
                            window.location.href = '/home';
                        } else {
                            layer.msg(res.message, {icon: 2});
                        }
                    },
                    error: function() {
                        layer.msg('服务器错误', {icon: 2});
                    }
                });

                return false; // 阻止表单提交
            });
        });
    </script>
</body>
</html>

在上述代码中,我们使用了Layui的form模块进行表单的验证和提交。form.verify()函数用于定义表单字段的验证规则,这里只提供了一个required规则作为示例。form.on('submit(formDemo)', function(data) {})函数用于监听表单提交事件,并在提交时使用AJAX发送登录请求。提交成功后,根据服务器的响应进行相应的处理。

憧憬

职业规划

  • 明确目标: 首先,明确您想在IT领域中追求的目标。确定您感兴趣的领域,如软件开发、网络管理、数据科学等。这有助于您更有针对性地选择学习方向。

  • 制定计划: 制定一个有条理的学习计划。列出您需要学习的技术、编程语言、框架等内容,安排学习的时间表。考虑到IT领域的不断变化,您可能需要持续地更新和调整计划。

  • 学习资源: 寻找高质量的学习资源,如在线教程、课程、书籍、视频教程等。在线学习平台如Coursera、Udemy、edX等提供了丰富的IT课程。

  • 实践项目: 学习IT技术最好的方法之一就是通过实际项目来应用所学知识。尝试编写小应用程序、解决实际问题,以及参与开源项目,这些都能增强您的实际技能。

  • 建立技能组合: IT领域涵盖广泛的技能,您可以选择在特定领域深入研究,或者在多个领域获得基础知识。例如,前端开发、后端开发、数据库管理等。

  • 认证考试: 考虑参加与您学习方向相关的认证考试。认证可以增强您的简历,证明您掌握了特定的技能和知识。

  • 实习和实践经验: 尝试寻找实习机会或兼职工作,以获得实际的工作经验。实践经验对于您在职业发展中的进展非常重要。

创作规划

  • 选择专题: 选择您在IT领域感兴趣并且具有深入知识的专题。这可以是某个编程语言、框架、开发方法、安全性等等。

  • 研究深入: 在选择的专题上进行深入研究,确保您对该领域的知识非常扎实。阅读相关文献、教程、论文,以及实际操作,以获取深刻的见解。

  • 定位受众: 确定您的目标读者是谁。您的创作内容可以是针对初学者、中级开发者还是高级专家等不同层次的读者。

  • 创作形式: 选择适合您的创作形式,如博客文章、技术教程、视频教程、演讲等。不同的形式可以吸引不同类型的受众。

  • 提供实例: 在创作中提供实际的示例和案例,这有助于读者更好地理解和应用所学。

  • 分享经验: 如果您在实际项目中遇到问题并找到解决方案,不要犹豫分享您的经验。这对其他开发者也会有帮助。

  • 持续更新: IT领域发展迅速,您的创作应该与时俱进。定期更新您的内容,以保持其准确性和实用性。

  • 社交媒体和平台: 利用社交媒体、技术博客、YouTube等平台发布您的创作内容,与其他开发者互动,扩展您的影响力。

总之,学习IT技术和创作规划是一个持续的过程。通过明确的目标、有组织的学习计划,以及有价值的创作内容,您可以在IT领域取得良好的职业发展和影响力。同时,不断保持对新技术和趋势的敏感度,以适应行业的变化。


码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目《国学周更---心性养成之路》,学习技术的同时,我们也注重了心性的养成。

相关推荐
芝士蛋卷呀7 小时前
睡眠对于生活的重要性
生活
Lisce96031013 小时前
利士策分享,探寻中华民族的精神纽带
生活·国庆
matlabgoodboy1 天前
“图像识别技术:重塑生活与工作的未来”
大数据·人工智能·生活
yttandb1 天前
重生到现代之从零开始的C语言生活》—— 内存的存储
c语言·开发语言·生活
NewsMash2 天前
北京市大兴区启动乐享生活 寻味大兴 美食嘉年华 系列促销费活动
生活·美食
OEC小胖胖2 天前
文心一言智能体——绿色生活管家
学习·生活·互帮互助
2401_844137952 天前
JAVA智慧社区系统跑腿家政本地生活商城系统小程序源码
微信·微信小程序·小程序·生活·微信公众平台·微信开放平台
GIS数据转换器2 天前
城市空间设计对居民生活质量的影响:构建宜居城市的蓝图
大数据·人工智能·3d·gis·生活·智慧城市
爱科技的幸运小鸭3 天前
运动耳机哪个牌子的好?5大质量不凡的运动耳机测评力荐!
人工智能·科技·数码相机·学习·云计算·生活
yttandb3 天前
《重生到现代之从零开始的C语言生活》—— 内存函数
c语言·算法·生活