1024 programmer's day, I was sprayed with hot search!

The annual programmer's festival is coming. Xiao Meng wishes everyone to write code without bug s, hair loss and financial freedom in the future.

For the 1024 Festival, CSDN also held a technical exchange conference, and many of my bloggers and partners also went, because I was far away from it.

Recently, when I'm free, I'll take a video and share my technology, private work and workplace experience with you.

Unexpectedly, I was sprayed with hot search. Curse! I don't know what I did wrong!

In three weeks, I developed a small program system. It was originally a very normal system, a very normal development cycle.

For the previous system, I also posted an article on CSDN:

Xiao Meng 5w received a small blind box program, which was developed in three weeks!

After three weeks of development, it is sprayed with sub database and sub table, and hair is sprayed. Is it difficult to develop in three weeks? Now there are so many frameworks, the key is that I reconstructed a set of my own system. Now which company allows you to write from building the framework?. I can generate most crud with one click, and I will write complex logic. I'll finish many systems in a day or two. If I say this, I won't be scolded s!


Take a look at the technology stack I share:

The following is the core code of the system

@Controller
@RequestMapping("/addressInfo")
public class AddressInfoController extends BaseController {

    @Resource
    private AddressInfoService addressInfoService;

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @SetMenuAnnotation
    @RequestMapping("listPage")
    public ModelAndView listPage(ModelAndView modelAndView) {
        modelAndView.setViewName("addressInfo/list");
        return modelAndView;
    }

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @RequestMapping("addPage")
    public String addPage() {
        return "addressInfo/add";
    }

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @RequestMapping("editPage")
    public ModelAndView editPage(ModelAndView modelAndView, Long id) {
        modelAndView.addObject("id", id);
        modelAndView.setViewName("addressInfo/edit");
        return modelAndView;
    }

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @RequestMapping("/getList")
    @ResponseBody
    public ReturnDataForLayui getList(AddressInfo addressInfo) {
        addressInfo.setIsDeleted(PageBean.isDeletedNo);
        return addressInfoService.getList(addressInfo);
    }

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @RequestMapping("/add")
    @ResponseBody
    public ReturnData add(AddressInfo addressInfo) {
        return addressInfoService.add(addressInfo);
    }

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @RequestMapping("/update")
    @ResponseBody
    public ReturnData update(AddressInfo addressInfo) {
        return addressInfoService.update(addressInfo);
    }

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @RequestMapping("/updateDelete")
    @ResponseBody
    public ReturnData updateDelete(AddressInfo addressInfo) {
        addressInfo.setIsDeleted(PageBean.isDeletedYes);
        return addressInfoService.updateDelete(addressInfo);
    }

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @RequestMapping("/updateDeleteBatch")
    @ResponseBody
    public ReturnData updateDeleteBatch(String ids) {
        List<Long> idList = JSON.parseArray(ids, Long.class);
        return addressInfoService.updateDeleteBatch(idList);
    }

}

@Controller
@RequestMapping("/blindBoxInfo")
public class BlindBoxInfoController extends BaseController {

    @Resource
    private BlindBoxInfoService blindBoxInfoService;

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @SetMenuAnnotation
    @RequestMapping("listPage")
    public ModelAndView listPage(ModelAndView modelAndView) {
        modelAndView.setViewName("blindBoxInfo/list");
        return modelAndView;
    }

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @RequestMapping("addPage")
    public String addPage() {
        return "blindBoxInfo/add";
    }

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @RequestMapping("editPage")
    public ModelAndView editPage(ModelAndView modelAndView, Long id) {
        modelAndView.addObject("id", id);
        modelAndView.setViewName("blindBoxInfo/edit");
        return modelAndView;
    }

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @RequestMapping("goodsLevelEditPage")
    public ModelAndView goodsLevelEditPage(ModelAndView modelAndView, Long id) {
        BlindBoxInfo blindBoxInfo = new BlindBoxInfo();
        blindBoxInfo.setId(id);
        ReturnDataForLayui list = blindBoxInfoService.getList(blindBoxInfo);
        ArrayList<BlindBoxInfo> blindBoxInfos = (ArrayList<BlindBoxInfo>) list.getData();
        BlindBoxInfo blindBoxInfoDb = blindBoxInfos.get(0);
        String goodsLevel = blindBoxInfoDb.getGoodsLevel();
        GoodsLevelInfo goodsLevelInfo = JSONUtils.json2pojo(goodsLevel, GoodsLevelInfo.class);
        if (goodsLevelInfo == null) {
            goodsLevelInfo = new GoodsLevelInfo();
        }
        goodsLevelInfo.setId(id);
        modelAndView.addObject("goodsLevelInfo", goodsLevelInfo);
        modelAndView.setViewName("blindBoxInfo/goodsLevelEdit");
        return modelAndView;
    }

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @RequestMapping("/getList")
    @ResponseBody
    public ReturnDataForLayui getList(BlindBoxInfo blindBoxInfo) {
        blindBoxInfo.setIsDeleted(PageBean.isDeletedNo);
        return blindBoxInfoService.getList(blindBoxInfo);
    }

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @RequestMapping("/add")
    @ResponseBody
    public ReturnData add(BlindBoxInfo blindBoxInfo) {
        return blindBoxInfoService.add(blindBoxInfo);
    }

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @RequestMapping("/update")
    @ResponseBody
    public ReturnData update(BlindBoxInfo blindBoxInfo) {
        return blindBoxInfoService.update(blindBoxInfo);
    }

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @RequestMapping("/updateGoodsLevel")
    @ResponseBody
    public ReturnData updateGoodsLevel(GoodsLevelInfo goodsLevelInfo) {
        return blindBoxInfoService.updateGoodsLevel(goodsLevelInfo);
    }

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @RequestMapping("/updateIsOnSale")
    @ResponseBody
    public ReturnData updateIsOnSale(BlindBoxInfo blindBoxInfo) {
        return blindBoxInfoService.updateIsOnSale(blindBoxInfo);
    }

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @RequestMapping("/updateDelete")
    @ResponseBody
    public ReturnData updateDelete(BlindBoxInfo blindBoxInfo) {
        blindBoxInfo.setIsDeleted(PageBean.isDeletedYes);
        return blindBoxInfoService.updateDelete(blindBoxInfo);
    }

    @MustSetForOrderNoAnnotation
    @AuthenticationAnnotation
    @RequestMapping("/updateDeleteBatch")
    @ResponseBody
    public ReturnData updateDeleteBatch(String ids) {
        List<Long> idList = JSON.parseArray(ids, Long.class);
        return blindBoxInfoService.updateDeleteBatch(idList);
    }

Core database of the system:

DROP TABLE IF EXISTS `address_info`;
CREATE TABLE `address_info`  (
  `id` bigint(19) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Primary key id',
  `person_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'full name',
  `phone` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'Telephone',
  `gender` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'Gender',
  `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'address',
  `user_id` bigint(19) NOT NULL COMMENT 'user',
  `is_deleted` char(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT 'Delete',
  `gmt_create` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT 'Creation time',
  `gmt_update` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT 'Update time',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'Receiving address information' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of address_info
-- ----------------------------
INSERT INTO `address_info` VALUES (1, 'zhy', '18034272031', '2', 'Hengshui City, Hebei Province', 1, '0', '2021-09-08 14:39:49', '2021-09-08 15:37:20');
INSERT INTO `address_info` VALUES (2, 'Zhang Hongyu', '18034272031', '2', '3008 Fuer building opposite CCTV building, Haidian District, Beijing', 1, '0', '2021-09-08 15:21:00', '2021-09-08 15:37:00');

-- ----------------------------
-- Table structure for blind_box_info
-- ----------------------------
DROP TABLE IF EXISTS `blind_box_info`;
CREATE TABLE `blind_box_info`  (
  `id` bigint(19) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Primary key id',
  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'title',
  `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'describe',
  `price` bigint(19) NOT NULL COMMENT 'Unit Price',
  `sort` int(9) NOT NULL COMMENT 'sort',
  `is_on_sale` char(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT 'Is it on the shelf',
  `goods_level` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'probability',
  `is_deleted` char(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT 'Delete',
  `gmt_create` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT 'Creation time',
  `gmt_update` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT 'Update time',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'Blind box information' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of blind_box_info
-- ----------------------------
INSERT INTO `blind_box_info` VALUES (1, 'Optimus Prime Reloaded', 'Transformer transformation "Kaka, Kaka, KaKa"', 1, 0, '1', '{\"id\":1,\"level1\":25,\"level2\":25,\"level3\":25,\"level4\":25}', '0', '2021-09-02 17:21:15', '2021-09-19 13:30:47');
INSERT INTO `blind_box_info` VALUES (2, 'Apple iPhone Pure enjoyment', 'Apple mobile notebook tablet host headset', 1, 0, '1', '{\"id\":2,\"level1\":0.01,\"level2\":0.01,\"level3\":0.01,\"level4\":99.97}', '0', '2021-09-02 17:35:39', '2021-09-19 13:30:48');
INSERT INTO `blind_box_info` VALUES (3, 'Burn life! Your possibilities are infinite and omnipotent', 'New real bone carving!', 11, 1, '1', '{\"id\":3,\"level1\":0.01,\"level2\":0.02,\"level3\":0.03,\"level4\":99.94}', '0', '2021-09-02 17:53:36', '2021-09-12 21:44:13');
INSERT INTO `blind_box_info` VALUES (4, '111', '111', 1100, 1, '1', '{\"id\":null,\"level1\":25,\"level2\":25,\"level3\":25,\"level4\":25}', '0', '2021-09-19 13:32:10', '2021-09-19 13:32:27');

-- ----------------------------
-- Table structure for file_upload_info
-- ----------------------------
DROP TABLE IF EXISTS `file_upload_info`;
CREATE TABLE `file_upload_info`  (
  `id` bigint(19) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Primary key id',
  `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'route',
  `file_size` bigint(19) NULL DEFAULT NULL COMMENT 'size',
  `data_from` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'source',
  `is_deleted` char(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT 'Delete',
  `gmt_create` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT 'Creation time',
  `gmt_update` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT 'Update time',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 102 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'File upload information' ROW_FORMAT = Dynamic;

In fact, my heart is still relatively calm. But I know that most programmers still do low-end code in the company. They have been CRUD all the time, have no own encapsulated system, and have not reconstructed the code. If you take private work, you have a relatively complete ability to investigate.

The whole project, including requirements, prototype design, UI, front-end, back-end and database design, is basically completed by myself.

As a programmer, if you want to be omnipotent, you can read what I wrote below. If I write nonsense, you can row it away directly.

First, I like to engage in technology and take steps towards architects and CTO s

This is my initial dream and purest idea when I was engaged in technology.

When I started writing programs, I didn't have any distractions. I participated in competitions, did projects for my tutors, took a dip in the library, and wrote code late at night.

After eight years as a programmer, I found that I was no longer suitable to be a programmer because I couldn't be an architect.

I don't have the heart to make wheels. Although I'm also learning the bottom layer and algorithm, compared with my doctor's wife, I found out the gap.

If you still like code and research technology after working for several years, go to architect and CTO.

See some recruitment websites for specific abilities. For example:



Second, take a step towards the management

If you think writing code is not good, you can do business and specialize in business. Of course, there are KPIs and intrigues in the workplace, which requires you to have high EQ and certain communication skills.

This kind of Xiaomeng is not suitable. I used to contact the product manager.

However, it is far from enough to rely on communication and relationship. To become a manager, you also need technology, otherwise you can't convince people, such as Java
You should understand:

Java foundation;

SSM framework;

SpringBoot;

Microservices;

JDK bottom layer;

Middleware;

Cache;

database

Vue, React and other front ends.

If you don't have a learning framework, look at the learning route I sorted out:

Third, entrepreneurship

I've had a deep feeling in the past few years.

Lonely, helpless, depressed, ghost tm until how I came over. The key is that sometimes my parents don't understand and keep scolding me:

You say that you have a master's degree and don't find a better unit to work. What's the difference between wandering all day and an unemployed vagrant?

I know what I want. I don't spell it when I'm young. Do I have to wait until I'm 50? Parents are traditional parents. I respect and understand their ideas, but I am an independent individual. I have my own thoughts and pursuit. If I fail, I will bear the consequences. In fact, there are no consequences. No big deal, go back to the workplace and type the code.

Fortunately, my daughter-in-law supports me. It's enough to have one person support me.

I know that entrepreneurship is directly proportional to risk. Twenty or thirty thousand a month is relatively stable, but it can't change the current situation. Now the income is much better than before. zfb's income alone is OK. Commercial orders are more profitable.

I have a lot to worry about starting a business. In order to save costs, I do the company's technology, and there are many other things.

Now I publish many articles and videos at 1:00 a.m.

Throughout all my technical friends, they have one common feature:

Have a very clear career plan.

There are still dreams. What if they come true! The world is uncertain, you and I are dark horses!

Chicken blood is over, 1024 happy, I'll continue to code!

Ask for three company, praise, collection and more dry goods update ing:

In order to help you improve your technology quickly, I have sorted out a lot of 100 projects.

​​​​​​​ 👇🏻 The project can be obtained by searching the official account below. 👇🏻 Key words: Project Daquan

Tags: Java Spring Boot Microservices

Posted on Sun, 24 Oct 2021 02:40:32 -0400 by johnh