设计原则-工作经验-日常

程序员如何平衡日常编码工作与提升式学习 是促进成长的良方。设想一下,若你参与了一个大型项目,事后总结出什么地方做得好与不足,将为后续的项目提供有益的借鉴。参与技术分享,向同行交流,将自己学习的经验传递出去,这是提升自己同时帮助他人的方法。在交流中收获不同的观点,更能促使自我思考。 阅读详情

software engineering 项目软件问题
stack overflow
database administrators 数据库问题
系统问题 ask ubuntu | unix& linux

在这里插入图片描述

1. 生产绝对不能让用户调用内部系统

不能给app服务指定公网访问域名, 必须走网关;
网关可以有token拦截,可以有 ip 角度 接口角度限制访问的频率;

生产差点事故;
给app 配置了域名, app.upower.sg; 这样导致短信发送接口被攻击了;
在nginx中去掉 app.upower.sg的server配置,又导致了服务调用不可用,
没有创建订单成功,那么用户可以一直租借充电宝!!!

2. linux

docker启动的容器,检查到底是docker compose启动的,还是docker run启动的

Docker Compose会设置com.docker.compose.project、com.docker.compose.service等标签。用户可以通过docker inspect命令查看容器的详细信息,然后过滤出Labels部分。如果有这些特定的标签,尤其是项目名称相关的,那么很可能是通过Compose启动的。

docker inspect --format='{{json .Config.Labels}}' <容器名或ID> | jq
docker inspect --format='{{json .Config.Labels}}' 00c49e58fb1f  | jq

jq是Linux系统中把文本字符串格式化成json格式的工具

{
“com.docker.compose.config-hash”: “cd7f0553be6ad133873f564afbef8aef4fa1917d37a1f55b0c787c1133939913”,
“com.docker.compose.container-number”: “1”,
“com.docker.compose.oneoff”: “False”,
“com.docker.compose.project”: “mysql8036”,
“com.docker.compose.project.config_files”: “docker-compose.yml”,
“com.docker.compose.project.working_dir”: “/opt/docker/mysql8.0.36”,
“com.docker.compose.service”: “db”,
“com.docker.compose.version”: “1.25.0”
}
docker run 启动的容器: ◦ 默认不包含上述标签(除非手动添加了类似的 --label 参数)
用find 搜索到docker compose yml

3. 生产环境

在这里插入图片描述

4. 编码

本地debug测试服务器代码

nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5004 -jar /opt/apisix/fundation-test-1.0-SNAPSHOT.jar &

JDK 8 及其一下:-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005

解释

transport=dt_socket:使用 Socket 通信。

server=y:JVM 作为调试服务器。

suspend=n:不阻塞 JVM 启动(设为 y 会等待调试器连接后再启动应用)。

address=*:5005:监听所有网卡的 5005 端口。

docker
dockerfile中设置参数

ENV JAVA_TOOL_OPTIONS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005"

启动镜像做好端口的映射
docker run -p 5005:5005 -p 8080:8080 your-image
k8s

env:
- name: JAVA_TOOL_OPTIONS
  value: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005"
kubectl port-forward pod/your-pod 5005:5005

流量转发逻辑
ssh -L 5005:serverhost:5005 user@test-server
link
在这里插入图片描述
新版本:
在这里插入图片描述

在这里插入图片描述

5.

Arthas:通过阿里开源的 Arthas 工具动态修改字节码(不重启服务)。

IDEA HotSwap:在调试模式下,修改代码后使用 Ctrl+F10 热更新(仅支持方法体修改)…

curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: <你的Admin Key>' -X PUT -d '
{
  "uri": "/*",
  "plugins": {
    "coraza-wasm": {
      "conf": {
        "rules": [
          "Include @modsecurity.conf",
          "Include crs-setup.conf",
          "Include rules/*.conf"
        ]
      }
    }
  },
  "upstream": {
    "type": "roundrobin",
    "nodes": {
      "backend:80": 1
    }
  }
}'

6. 网关

java发版出现502⇒ 有人发版;

7. json

序列化对象,手动指定 serialVersionUID ,有版本要求

@Data
public class TrustedDevice implements Serializable {


    private static final long serialVersionUID = -6243351240857227829L;

8. 定时调度

quz

idleWaitTime 扫描任务的时间间隔

  # Job Scheduler,处理定时任务
  quartz:
    job-store-type: jdbc
    properties:
      org:
        quartz:
          threadPool:
            threadCount: 10
          scheduler:
            idleWaitTime: 3000
    scheduler-name: backend_scheduler

9.

sequenceDiagram
    participant Client
    participant APISIX
    participant Redis
    Client->>APISIX: 携带Token请求API
    APISIX->>Redis: 查询Token对应的userId
    alt Token有效
        Redis-->>APISIX: 返回userId
        APISIX->>APISIX: 生成限流Key(userId+路径)
        APISIX->>APISIX: 执行限流计数
        alt 未超限
            APISIX->>Client: 正常响应
        else 超限
            APISIX->>Client: 返回超限结果
        end
    else Token无效
        APISIX->>Client: 返回token无效结果
    end

10.

11.

12.

13.

14.

15.

浅谈交易链路中的一些设计原则&模式 本人之前也对设计原则、模式等进行过学习,但是主要是走心,谈了一下自己的感受。要想获得内心的宁静,感觉还是要参考书中的逻辑,和日常工作中的一些理解进行连接。于是乎,基于这些原则和部分模式简单谈一下。 阅读详情

相关推荐

架构师必须知道的架构设计原则

一、前言 如果一个技术已经存在3年,比如现在很火的前端技术react和vue等,那么我能预估这个技术大致还有3年的生命期,再久就不确定了;如果一个架构或设计原则已经存在15年,例如单一职责和依赖倒置原则,我可以预期它还有15年甚至更久的生命期。原则是比具体技术更抽象,更接近事物本质,也更经得起时间考验的东西。这些原则沉淀在架构师的脑海中,最终内化成他的mindset,以潜意识方式影响和指导他的架构...

架构师波波的专栏 2463

完美!京东出品“架构师成长手册”首次落地,其实架构离你并不远

前言 现在面试造火箭,工作拧螺丝是现在很普遍的现象。可是有时候我常常会看到这么一种现象:同时期进入到同一家公司,时间长了之后,有的人已经有一定的架构能力了,已经缓步向架构师方向迈进了,有的人却还在扎入CRUD的苦海中出不来,造成这种差别的原因除了个体素质的差异,还有一个是工作方式和思考方式上的差异。技术不断更新但是有的人却不一定在进步,不进步就只能被后浪“拍死”在沙滩上,这是一个很现实的问题。 但是想要成为一个架构师并不是一夜之间就能做到的,而是需要日常工作上不断的积累,是一个缓慢的过程,当然天才除外。

Java圈全能架构师的博客 537

《解析提示工程架构师日常工作:核心技能与实践方法大揭秘》

[提示工程架构师工作全景图]

AI架构师小马 694

自然用户界面设计:NUI的经验教训与设计原则

《自然用户界面设计:NUI的经验教训与设计原则》基本信息原书名:Brave NUI World:Designing Natural User Interfaces for Touch and Gesture作者: (加)维格多 (Wigdor,D.) (美)威克森 (Wixon,D.) [作译者介绍]译者: 季罡丛书名: 图灵交互设计丛书出版社:人民邮电出版社ISBN:9787115293060上...

weixin_30710457的博客 373

19、探索Active Directory的核心设计原则与实践

本文深入探讨了Active Directory的核心设计原则与实践,涵盖AD的重要性、基础架构设计、安全策略、性能优化、灾难恢复计划、日常管理和维护以及未来发展趋势等内容。通过详细的技术指导和实际案例分析,帮助IT专业人士更好地理解和应用AD,提升企业IT管理水平。

weixin_30923011的博客 362

PSI系统设计与应用指南.pdf

传感器是一种检测装置,它能感应到被测量的信息,并将这些信息转换成可用的电信号输出。其工作原理基于物理、化学或生物效应。例如,温度传感器可能利用半导体材料的电阻温度特性来测量温度。压力传感器可能基于压电效应或电容变化来检测压力变化。在现代工业中,传感器应用非常广泛,包括但不限于自动化生产线、智能控制、环境监测、医疗诊断等领域。了解传感器的工作原理对于准确选择和使用传感器至关重要。安全标准是确保 PSI(压力传感器集成)系统在各种操作条件下保持安全、可靠和高效运行的基石。

weixin_28850145的博客 639

【职场经验】测试用例的8大设计原则

我们看到的大部分关于测试用例设计的文章,都在讲等价类、因果图、流程法等内容,这是关于测试用例的具体设计方法层面。本文想讨论的重点是,测试用例设计该遵循什么原则,有哪些思维和观点有助于产出更好的测试设计,这些思考汇集了对质量和测试的理解,以及对设计成本和质量预期的平衡,思考这些原则有助于测试设计的完备性和有效性。

chengxuyuznguoke的博客 1215

工作日报单模板(DOC格式)

工作日报单是IT行业从业者在日常工作中记录和汇报工作进展的工具,它详细记录了一天工作的开始、进行以及完成情况。通过工作日报单,个人和团队可以有效地跟踪任务完成状态、记录遇到的困难和解决问题的过程,并进行经验总结和知识共享。它不仅有助于个人对自己的工作进行反思和总结,提高工作效率,而且对于团队而言,是一个重要的信息交换平台,可以促进团队成员之间的沟通和协作,为管理者提供了决策支持和绩效考核的依据。

weixin_42168902的博客 1813

程序员如何平衡日常编码工作与提升式学习?

在快速迭代的编程世界中,程序员们不仅需要高效完成日常编码任务,还需不断学习新技术、深化专业知识,以应对日益复杂的项目挑战。然而,如何在繁忙琐碎的编码工作与个人成长之间找到平衡,是不少程序员都面临的一个难题。此外,鼓励大家分享个人成长的故事与经验,激励各位同行在职业道路上前行的同时,仍保持对生活的热爱和对技术的热情。模块化设计是一种将软件系统分解为多个独立的、可重用的模块的过程,每个模块都负责完成一个特定的功能。通过以上方法,可以在职业发展的同时,不断提升自己的个人能力,实现职业发展与个人成长的和谐共生。

xx 796

实现高效工作的每日工作汇总表模板

明确每个团队成员的角色和责任是优化工作流程的关键。这样做不仅能够确保每个人都了解自己的职责,还能够减少职责重叠和潜在的冲突。工作汇总表是记录角色和责任分配的完美场所。团队可以根据任务的不同阶段和类型,分配不同的责任给相应的成员。在IT行业,持续学习和自我提升是职业发展的核心。反思记录是一种有效的学习工具,它帮助我们理解过去的经历、评估当前的状况,并为未来规划方向。为了更有效地进行工作成果的总结和问题的识别,我们需要对完成的任务和经历的挑战进行全面的分析。

weixin_35815766的博客 1680

ROS中costmap_converter插件的配置与使用

在学习TEB算法的过程中,作者提供了一个插件用于转换代价地图,原始的代价地图是由栅格地图中单元格组成,用于表示障碍物,但单元格占用的计算资源较大,故采用插件将单元格转换成点,线,多边形表示。 插件激活 rospack plugins --attrib=plugin costmap_converter 配置cfg文件 在导航配置文件下,新建costmap_converter_params.yaml #######################################################

weixin_42621524的博客 5902

软件工具的设计原则

要让设计原则成为一种习惯。 1。一次做好一件事情 2。处理文本行不要处理二进制文件 3。使用正则表达式 4。默认使用标准的输入/输出 5。避免喋喋不休 6。输出的格式必须与可接受的输入格式一致 7。让工具去做困难的事情 8。构建工具之前,先想想 这是在做任何工具的时候一个不错的习惯,其实生活中在作一件事情的时候也是一样的原则,养成作事情的良好的习惯往往是成功的基础。

@奮 鬥@的专栏 833

从零构建:STM32与EC800 4G模块的工业物联网数据透传实战

本文详细介绍了如何从零构建STM32与EC800 4G模块的工业物联网数据透传系统。内容涵盖硬件选型、抗干扰电路设计、AT指令稳定性优化、网络连接管理、可靠数据透传协议以及低功耗策略,为开发者提供了一套可直接应用于工业场景的完整实战方案。

uran的专栏 1013

设计原则终极指南:通过Awesome Design Principles学习专业设计方法论

设计原则是创建更好、更一致设计和体验的强大工具。无论您是UI/UX设计师、产品经理还是开发人员,掌握专业的设计原则都是提升工作质量的关键。Awesome Design Principles项目为您提供了一个精心策划的设计原则资源库,帮助您系统学习各大公司的设计方法论。 ## 为什么设计原则如此重要? 设计原则是指导详细设计决策的高级规则,它们帮助团队保持一致的设计语言和用户体验。在当今竞争激烈

gitblog_00156的博客 997

(一)Tushare Pro教程:股票基本数据接口

 一直使用tushare作数据源,这里开个教程大家一起学习。 一、介绍        tushare是一个python股票数据源,现已升级到tushare pro版本,新版本在数据稳定性和获取速率上大幅提升。与wind、东财等收费数据源相比,tushare pro算是金融数据界的良心之作,其为从事金融工程、量化研究等方向的同学们提供了便利。tushare pro还有一点突出的特色就是已经将股票...

虎毛的博客 4万+

Qt Coordinate System

Qt 坐标系统Qt 坐标系统 数学基础 Qt坐标系统 视口 平移变换 缩放变换 setWindow 旋转 总结数学基础 矩阵与线性变换坐标系变换Qt坐标系统 视口和OpenGL一样,视口确定了画面在窗口(QWidget)中显示的区域,Qt的绘图坐标会完全映射到视口(View port)上,就像图示一样。默认情况下,窗口和视口是重合的,视口的大小覆盖了整个窗口。和OpenGL一样,Qt的QPa

unclerunning的博客 1149

企业AI研发工作台的核心设计原则:可控性优先于智能性

可控 AI 工作台的使命,不是让 AI 更聪明,而是让开发者重新成为自己认知资源的主人。在 AI 能力极大丰富的时代,最稀缺的不是智能,而是掌控感。 谁先把掌控感还给开发者,谁就定义了下一代企业研发工具的标准。

敖行客 Allthinker的博客 325

YF-S401水流量传感器在STM32上的精准计量实现

本文详细介绍了YF-S401水流量传感器与STM32微控制器的集成应用,实现精准水流计量。通过外部中断和外部时钟两种脉冲计数方案,结合硬件配置、软件滤波和校准技巧,确保高精度流量测量。适用于智能家居和工业自动化中的水控系统,提升系统稳定性和测量准确性。

rainy的博客 895

Android自学,这篇文章可以满足你80%日常工作

简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界,这是深度问题,和个人学习能力和解决问题的态度有关了。大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。

m0_61331407的博客 1033

Vue - 详细实现低代码平台,支持拖曳式可视化生成应用软件功能,用户通过拖拽元素、搭积木的方式创建应用(适合迭代的基础架构、低代码平台)

Vue低代码平台-拖曳式拖拉拽可视化生成应用软件,拖拽式低代码数据可视化开发平台,vue实现拖拽,拖拽式Vue组件代码生成平台,基于vue的可视化拖拽代码生成工具,Vue实现可拖拽组件的方法,一个低代码平台的前端部分,靠拖拉拽生成页面。Vue技术栈从零实现低代码可视化搭建平台示例,低代码轮子,通过拖拽就可生成Vue代码的平台来了,vue低代码平台开发相关比低代码更强大的零代码开发平台,这款低代码SAAS数据可视化工具,拖拽生成大屏。vue实现拖拽效果,Vue自由拖拽缩放组件,自定义组件(文本、图片

🏆 前端领域优质创作者 1万+

Unity3D实现视频和模型融合效果

在Unity中,视频和3D模型融合通常涉及到将视频表面内嵌到3D场景中。视频不影响模型的展示, 这可以通过使用Shader和Texture来实现。大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。下面就让我们进入正文吧!提示:以下是本篇文章正文内容,下面案例可供参考本次介绍的就是视频和模型融合的实现,以后有其他的需要添加的会继续添加不定时更新Unity开发技巧,觉得有用记得一键三连哦。么么哒。

心疼你的一切博客 5356

java程序员的日常工作_Java程序员的日常 —— 工作一天的收获

看题目可能是扯皮,其实还是有很多专业知识的。从最开始没有注意到设计原则,到后面的jquery实战技巧,都是今天一天碰到的问题。每天整理一点点,每天收获一点点。关于软件设计在设计系统结构的时候,一些软件设计方法,还是很重要的。比如开闭原则,开闭原则就是:对扩展是开放的对修改是关闭的要做到上面两点,就需要在设计应用架构时,理清核心的需求点。完成一个解决问题需求的最小的、最核心的设计结构。其他的业务逻辑...

weixin_39676930的博客 173

A算法的蒙特卡洛树搜索

A*算法的蒙特卡洛树搜索 作者:禅与计算机程序设计艺术 1. 背景介绍 在人工智能和游戏开发领域,搜索算法是一个非常重要的研究方向。其中A算法和蒙特卡洛树搜索是两种广泛应用的经典算法。A算法是一种启发式搜索算法,通过评估各个节点到目标节点的启发式代价来引导搜索方向,在

AI天才研究院 1730
上一篇: uri-url-HttpServletRequest
下一篇: gson-json
吧啦蹦吧
博客等级 码龄10年 52粉丝 139原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值