首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    我在ThoughtWorks中的敏捷实践

    有句土耳其谚语这么讲的:"不管你走了多远,错了就要重新返回",所以我们越快得到反馈,就能越早确认自己有没有走错路。如果没有错,我们会更加充满信心。反之,及时做出调整,让浪费最小化。...在我们团队中,这个角色就是一开始提到的BA。她是IPM主要参与人,另外还有Tech Lead会一起参与讨论(团队中每一个人成员都是可以参与进来的)。...我听过一个有趣的事情:在敏捷开发方法兴起的时候,很多传统开发模式的团队跃跃欲试,他们选择从Standup切入。然后每天早上上班后,大家聚在一起开个会(站着、坐着都有),然后该怎么做还是怎么做。...我比较推荐DEV在kick off后将Story划分成子任务列表,按照依赖关系和优先级排序,逐个干掉他们。...我也经历过客户要求测试覆盖率的项目,有专门的测试覆盖率工具(coveralls)来检测代码库,有的甚至集成在CI上作为一个硬性指标。 所以,TDD必须在一个有测试的项目中去讲。

    3.7K30

    在GET、POST请求中,常见的几种传参格式

    一: 在GET请求中,常见的几种传参格式包括: 1:查询字符串(Query String): 在URL中使用?符号将参数附加到URL末尾,多个参数之间使用&符号分隔。...例如: GET /api/users/12345 3:参数数组: 使用相同的参数名,但允许多个值的情况。参数值使用[]表示。例如: GET /api/users?...filter[]=admin&filter[]=active 4:参数对象(JSON格式): 将参数封装在一个对象中,然后将该对象作为查询字符串的值传递。例如: GET /api/users?...二:在POST请求中,常见的几种传参格式 在POST请求中,常见的几种传参格式包括: 1:JSON 数据格式: 在请求的数据体中使用 JSON 格式来传递参数。...例如: POST /api/users Content-Type: application/json { "name": "John", "age": 25 } 在上述示例中,请求的数据体是一个

    26.8K105

    为什么我在公司里访问不了家里的电脑?

    上篇文章「为什么我们家里的IP都是192.168开头的?」提到,因为IPv4地址有限,最大42亿个。...举个现实中的场景就是,你在你家里的电脑上启动了一个HTTP服务,地址是192.168.30.5:5000,此时你在公司办公室里想通过手机去访问一下,却发现访问不了。...接着,所有人都去访问服务器x,服务器x将数据转发给内网机器,再原路返回响应,这样数据就都通了。这就是所谓的内网穿透。...像上面提到的服务器x,你也不需要自己去搭,已经有很多现成的方案,花钱就完事了,比如花某壳。 内网穿透 到这里,我们就可以回答文章标题的问题。 为什么我在公司里访问不了家里的电脑?...之所以会有这个错,主要是因为在一个linux内核中,内核收到网络数据时,会通过五元组(传输协议,源IP,目的IP,源端口,目的端口)去唯一确定数据接受者。

    3.7K10

    我踩过的Spring Boot统一返回体中的坑

    在Spring Boot项目中我们可以通过RestControllerAdvice配合实现ResponseBodyAdvice接口来保证Spring MVC接口具有统一的返回格式,以保证前端同学能够封装统一的数据接收工具...但是很多网上的文章并没有对实际开发中的细节作出更多的讲解。今天胖哥就来分享一下我的一些细节处理,也算作一个总结。...>> converterType); 这个方法如果返回false就表示不执行统一返回体的封装逻辑。这里我推荐注解实现。...返回独立字符串的问题 有些接口我们会返回一个字符串: @GetMapping("/get") public String getStr(){ //返回了一个字符串 return "felord.cn...,希望能够帮助你解决一些实际开发中遇到的同样问题。

    1.6K30

    【Java避坑】为什么我的 String a == b 返回 false?一文搞懂 Java 中的 == 与 equals

    明明两个字符串的内容一模一样,用 if (str1 == str2) 判断时,程序却无情地走进了 else 分支。 作为一个 Java 新手,这个问题曾困扰了我很久。...} 按照我们的直觉,str1 和 str2 都是 "hello",应该一样才对。为什么 Java 告诉我它们不一样? 2. 真相:你在比“地址”还是在比“长相”?...在 Java 的世界里,比较东西分两种情况。 A. == 操作符:比较的是“地址” (内存地址) 这就好比在问:“你们拿的是不是同一把家门钥匙?” 在上面的代码中,我们用了 new 关键字。...虽然它们房子里装修得一模一样,但它们是两栋不同的房子!所以 == 返回 false。 B. equals() 方法:比较的是“内容” (逻辑值) 这就好比在问:“你们的房子装修是不是一样的?”...所以这里 s1 和 s2 确实拿的是同一把钥匙。 但千万别依赖这个!在实际开发中,数据往往是从数据库或者网络传来的,你无法保证它们在常量池里。 4.

    9810

    在Java中为什么不同的返回类型不算方法重载?

    doSomething } public void method(Integer id, String name) { // doSomething } } 为什么不同返回类型不算方法重载...从方法签名的组成规则我们可以看出,方法的返回类型不是方法签名的组成部分,所以当同一个类中出现了多个方法名和参数相同,但返回值类型不同的方法时,JVM 就没办法通过方法签名来判断到底要调用哪个方法了,如下图所示...: 那为什么返回类型不能做为方法签名的一部分呢?...总结 在同一个类中定义了多个同名方法,但每个方法的参数类型或者是参数个数不同就是方法重载。方法重载的典型使用场景是 String 中的 valueOf 方法,它有 9 种实现。...方法返回类型不能作为方法重载的依据,因为它不是方法签名的组成部分。

    5.6K10

    反思我在管理中犯过的重大错误

    近一年来,我在管理中犯下的2个重要错误。该错误导致团队结构不清晰,骨干核心人员不稳定,易流失。...组内结构划分可见下图所示: 二、我是如何犯错的,以及我为什么犯错 错误一:资源错配 对于组长的选择,以及组内骨干的选择,如下图所示: 其中标记为组长的,是在团队内部小组内被任命为小组长,标记为骨干的...两个业务小组中,初中级员工干中高级员工的活,中高级人员为相对边缘角色。这样的资源错配,直接引发了核心、骨干员工的离职率高的后果。 我为什么会这样做: 本质上是一个“谁能谁上”还是“谁上谁能”的问题。...我喜欢将所有有挑战性的、开拓边界的任务给到这类员工。 我为什么会这样做: 本质上是 个人的喜好问题(因为我也属于这类人)。...所以我就非常喜欢这类员工,我就喜欢一直用这类员工,为什么一直用,因为用着顺手啊,所有事情都能按照我的想法落地下去。所以就一直给这类员工了。

    2.5K10

    我的WCF之旅(3):在WCF中实现双工通信

    双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息。基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合。...一、两种典型的双工MEP 1.请求过程中的回调 这是一种比较典型的双工消息交换模式的表现形式,客户端在进行服务调用的时候,附加上一个回调对象;服务在对处理该处理中,通过客户端附加的回调对象(实际上是调用回调服务的代理对象...图1描述了这样的过程,服务调用和回调都采用请求-回复MEP。 ? 图1 请求过程中的回调 2.订阅-发布 订阅-发布模式是双工模式的一个典型的变体。...如果回调是采用单向操作,回调请求一经发送便会返回,服务操作可以继续得到执行直到操作正常结束。但是服务采用请求-回复模式的回调,服务端会一直等待回调操作的返回。...由于回调的服务监听地址采用的默认端口是80,在IIS 5.x以及之前的版本中,80端口是IIS独占的监听端口。

    1.9K100

    GET 和 POST请求的本质区别是什么?原来我的理解一直是错的

    GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。 GET请求在URL中传送的参数是有长度限制的,而POST么有。...如果我告诉你GET和POST本质上没有区别你信吗? 让我们扒下GET和POST的外衣,坦诚相见吧! GET和POST是什么?HTTP协议中的两种发送请求的方法。 HTTP是什么?...在我大万维网世界中,TCP就像汽车,我们用TCP来运输数据,它很可靠,从来不会发生丢件少件的现象。...在我大万维网世界中,还有另一个重要的角色:运输公司。不同的浏览器(发起http请求)和服务器(接受http请求)就是不同的运输公司。虽然理论上,你可以在车顶上无限的堆货物(url中无限加参数)。...长的说: 对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); 而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送

    4K00

    我与AI: 盘一盘我是怎么在项目开发中应用Agent Skills的

    第一层:元数据(Metadata)-始终加载在Skills的设计中,每个技能都存放在一个独立的文件夹中,核心是一个名为SKILL.md的Markdown文件。...这与MCP的工作方式形成了鲜明对比:在典型的MCP实现中,连接到一个服务器时通常会通过tools/list请求获取所有可用工具的完整JSONSchema,这可能立即消耗数万个token。...在深入AgentSkills之前,我们需要先理解为什么有了MCP还需要Skills。这要从MCP的设计理念和局限性说起。...为什么MCP采用急切加载(EagerLoading)?因为MCP的设计目标是让智能体"知道所有可用的工具",这样它才能灵活地选择和使用。但这种设计在实际应用中暴露出了明显的缺陷。...:TXTAI代码解释启动智能体↓扫描所有Skills,仅加载元数据(~500tokens)↓分析用户请求↓识别相关Skill↓加载该Skill的完整指令(~2ktokens)↓执行过程中按需加载资源(灵活

    94221

    我在自己的桌面端应用中运行了小程序

    网络通信控制:网络通信控制组件控制小程序的网络访问,该组件支持黑白名单等功能,可对非白名单访问请求进行阻断。...而至于为什么“套壳子”就能实现,可以简单想象不同开发语言环境下,不同小程序相当于两个说不同语种的人进行协同工作,原本因为语言不通可能会搞砸一些事情。...SDK 前还需要在 FinClip 的后台上架小程序,我上架了官方的示例小程序代码包,也尝试了直接把微信小程序的代码包上传到 IDE 中的,发现也能兼容。...auto *factory = finclip_get_packer_factory(); auto *packer = finclip_packer_factory_get_config_packer...以下是我桌面端实际运行小程序的结果。图片如果做一定适配优化,小程序的展示尺寸还可以适配打开窗口大小,效果也不错。

    2.6K30
    领券