手把手教你做关键词匹配项目(搜索引擎)---- 第十一天,教你做第十一天
第十一天
起点:
1. 手把手教你做关键词匹配项目(搜索引擎)---- 第一天
回顾:
10. 手把手教你做关键词匹配项目(搜索引擎)---- 第十天
话说又到周末了,小帅帅又得写总结报告了,小帅帅有点不太喜欢做总结,他觉得写代码都比写总结好。
但是是于老大安排的任务,他不得不去完成它。
1. 面向对象编程思维能力的培养
2. TopClient的使用与重构
3. ExtendedCurl深度使用
4. Logger的创建与应用
小帅帅一写到这儿,于老大问的三个问题,至今还在想,就算他把代码写出来了,他还是想不通为啥于老大会未卜先知。
小帅帅的代码如下:
<span>class</span><span> Logger { </span><span>const</span> LEVEL_TRACE='trace'<span>; </span><span>const</span> LEVEL_WARNING='warning'<span>; </span><span>const</span> LEVEL_ERROR='error'<span>; </span><span>public</span> <span>static</span> <span>function</span> error(<span>$message</span><span>){ self</span>::<span>log</span>(<span>$message</span>,self::<span>LEVEL_ERROR); } </span><span>public</span> <span>static</span> <span>function</span> warning(<span>$message</span><span>){ self</span>::<span>log</span>(<span>$message</span>,self::<span>LEVEL_WARNING); } </span><span>public</span> <span>static</span> <span>function</span> trace(<span>$message</span><span>){ </span><span>if</span><span>(DEBUG) self</span>::<span>log</span>(<span>$message</span>,self::<span>LEVEL_TRACE); } </span><span>public</span> <span>static</span> <span>function</span> <span>log</span>(<span>$message</span>,<span>$level</span> = self::<span>LEVEL_TRACE){ </span><span>$file</span> = <span>fopen</span>('application.error.log', "a+"<span>); </span><span>fwrite</span>(<span>$file</span>, <span>$message</span>."\t".<span>$level</span>."\t".<span>microtime</span>(<span>true</span><span>)); </span><span>fclose</span>(<span>$file</span><span>); } }</span>
小帅帅想不通的问题,就是喜欢问,他只好又去找于老大。
于老大说道:你们做功能都是满足提需求的人,你们有没有想过,其实你们也是提需求的人。了解测试驱动开发吗?
测试驱动开发:英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。[来自百度词库]
测试驱动开发,很好的描述了用户的输入以及结果。
把自己也当作提需求的人、站在需求者的角度看待问题。
其实小帅帅在写这份代码的时候也在纳闷, 使用下面语句,不就可以记录所有的问题.
Logger::<span>log</span>(<span>$message</span>,'error'<span>); Logger</span>::<span>log</span>(<span>$message</span>,'warning'<span>); Logger</span>::<span>log</span>(<span>$message</span>,'trace');
于老大为什么还要单独提出来:
Logger::error(<span>$message</span><span>); Logger</span>::warning(<span>$message</span><span>); Logger</span>::trace(<span>$message</span>);
于老大就对他说了一句话:上面两种的用法你更加喜欢用哪一种。
需求者都是喜欢简单的功能
( 其实充分体现了他们的懒惰行为,正因为如此才有现在的文明 )
小帅帅看完这些后,深深的震撼了,从所未有的感受到理论知识和心态的重要性。
小帅帅第一次感觉到要学习的东西好多丫.....
小帅帅也不着急,还是任务要紧,他坚信,只要多完成一些项目,就能成为牛人。
他只好又匆匆忙忙的找于老大,去请教关键词如何应用,技术如何实现。
但是于老大不愿意多说了,要小帅帅自己去想了。
这可苦了小帅帅。
小帅帅这是要站起来的节奏....
关键词应用需求:
通过淘宝API取到的宝贝标题以及宝贝属性,匹配出适合该宝贝的关键词.
初期考虑以下因素:
适合人群的匹配 :男装 (匹配出来的关键词不能有女) 女装(匹配出来的关键词不能有男) 情侣装(男女适用) 童装(?)

explorer.exe是什么进程在我们使用Windows操作系统的时候,经常会听到一个名词"explorer.exe".那么,你是否好奇这个进程到底是什么?在本文中,我们将详细解释explorer.exe是什么进程以及其功能和作用。首先,explorer.exe是Windows操作系统的一个关键进程,它负责管理和控制Windows资源管理器(Window

10月29日,AMD终于发布了备受用户期待的重磅产品,即基于全新RDNA2架构的RX6000系列游戏显卡。这款显卡与之前推出的基于全新ZEN3架构的锐龙5000系列处理器相辅相成,形成了一个全新的双A组合。这一次的发布不仅使得竞争对手“双英”黯然失色,也对整个DIY硬件圈产生了重大影响。接下来,围绕笔者手中这套AMD锐龙5600X和RX6800XT的组合作为测试例子,来见证下现如今的AMD究竟有多么Yse?首先说说CPU处理器部分,上一代采用ZEN2架构的AMD锐龙3000系列处理器其实已经令用

内存是计算机中非常重要的组件之一,它对计算机的性能和稳定性有着重要影响。在选择内存时,人们往往会关注两个重要的参数,即时序和频率。那么,对于内存性能来说,时序和频率哪个更重要呢?首先,我们来了解一下时序和频率的概念。时序指的是内存芯片在接收和处理数据时所需的时间间隔。它通常以CL值(CASLatency)来表示,CL值越小,内存的处理速度越快。而频率则是内

0x0000004e是什么故障在计算机系统中,故障是一个常见的问题。当计算机遇到故障时,系统通常会因为无法正常运行而出现停机、崩溃或者出现错误提示。而在Windows系统中,有一个特定的故障代码0x0000004e,这是一个蓝屏错误代码,表示系统遇到了一个严重的错误。0x0000004e蓝屏错误是由于系统内核或驱动程序问题导致的。这种错误通常会导致计算机系统

Apple在周二推出了iOS17.4更新,为iPhone带来了一系列新功能和修复。这次更新包括了全新的表情符号,同时欧盟用户也能够下载其他应用商店。此外,更新还加强了对iPhone安全性的控制,引入了更多的「失窃设备保护」设置选项,为用户提供更多选择和保障。"iOS17.3首次引入了“失窃设备保护”功能,为用户的敏感资料增加了额外的安全保障。当用户不在家等熟悉地点时,该功能要求用户首次输入生物特征信息,并在一小时后再次输入信息才能访问和更改某些数据,如修改AppleID密码或关闭失窃设备保护功能

大家知道MicrosoftEdge在哪设置显示下载按钮吗?下文小编就带来了MicrosoftEdge设置显示下载按钮的方法,希望对大家能够有所帮助,一起跟着小编来学习一下吧!第一步:首先打开MicrosoftEdge浏览器,单击右上角【...】标识,如下图所示。第二步:然后在弹出菜单中,单击【设置】,如下图所示。第三步:接着单击界面左侧【外观】,如下图所示。第四步:最后单击【显示下载按钮】右侧按钮,由灰变蓝即可,如下图所示。上面就是小编为大家带来的MicrosoftEdge在哪设置显示下载按钮的

免费的dll修复工具有哪些导语:随着电脑使用的频繁,有时我们可能会遇到一些dll文件损坏或丢失的问题,这会导致某些软件无法正常运行,给用户带来了很大的困扰。幸运的是,市面上有一些免费的dll修复工具可以帮助我们解决这个问题。本文将介绍几款常用的免费dll修复工具,并对其功能和特点进行分析。一、DLL-FilesFixerDLL-FilesFixer是一

前端ESM是什么,需要具体代码示例在前端开发中,ESM是指ECMAScriptModules,即基于ECMAScript规范的模块化开发方式。ESM带来了许多好处,比如更好的代码组织、模块间的隔离和可重用性等。本文将介绍ESM的基本概念和用法,并提供一些具体的代码示例。ESM的基本概念在ESM中,我们可以把代码分为多个模块,每个模块对外暴露一些接口供其他模


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)
