系统

API开发/运维经验1

◇◆丶佛笑我妖孽 提交于 2021-02-19 10:51:46
对于维护API的经验,推荐《软件框架设计的艺术》这本书,无论是webService还是Rest还是其他什么,都很有帮助。 不过这书在概念上还是离平时工作太远,知识很精华,但和我的实际工作并不接轨,所以逐渐萌生“把我自己开发/运维API的一些经验整理出来,写一篇大的博文”这样的想法 不过最近又忙且病,所以一条条慢慢往外挤…… 1. 参数命名规范 我曾经接手一个已经运行一段时间的API系统,它对外暴露的接口的参数,没有采用通用的第一个后单词首字母的规范 我在新开发接口时,决定采用新的规范; 但问题来了,接口的以前使用者,在调用新接口时,总也调不通,原因就是,以前用来标记访问来源的参数visitsystem,被我不经意间改成了visit**S**ystem,一字之差,接口在验证时找不到访问来源,于是不允许访问; 由此得出经验:参数规范化很重要,但对于以被使用的通用参数名,还是遵从以前的规则。 因为开发最不喜欢细看接口文档……啊啊啊!!!!(虽然我也有这毛病,但我还是要鄙视) 2. 接口返回值 对于错误信息的返回,非常重要。调用接口的系统,会根据错误信息,提示用户进行对应操作。 我负责这个系统,最开始是用数字(errcode),代表错误信息;但用数字用来标示每个错误,则粒度太细,用来标示一类错误,则对信息的提示又不足; 比如对于系统异常,和参数错误,是同级别的错误类型

译:MySQL性能优化的21条最佳经验

假如想象 提交于 2020-04-12 16:24:23
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们 程序员 需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。 0. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。 这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的。因为,我们某些查询语句会让MySQL不使用缓存。请看下面的示例 // 查询缓存不开启 $r = mysql_query("SELECT username FROM user WHERE signup_date >= CURDATE()"); // 开启查询缓存 $today = date("Y-m-d"); $r = mysql_query("SELECT username FROM user WHERE signup_date >= '$today'");

Win8系统108个运行命令 你能记住多少?

谁说我不能喝 提交于 2020-04-07 11:32:20
Win8运行命令:程序和功能 取消了开始菜单的Win8让人感觉很不习惯,这才发现原来开始菜单可以做这么多事。不过Win8中的一些快捷键还沿用了Windows一直以来的习惯,比如按下Windows + R打开“运行”对话框。在这里我们可以通过命令来打开各种应用程序或系统设置,不过这需要你有超强的记忆力,能把Win8中所有的运行命令都记住。 以下这108条运行命令都是大家经常会用到的,看看你能记住多少? Win8系统108个运行命令 你能记住多少?   1.appwiz.cpl:程序和功能(程序卸载) 打开程序和功能(程序卸载)窗口   2.calc:启动计算器   3.certmgr.msc:证书管理实用程序 证书管理实用程序   4.charmap:启动字符映射表   5.chkdsk.exe:Chkdsk磁盘检查(管理员身份运行命令提示符)   6.cleanmgr: 打开磁盘清理工具   7.cliconfg: SQL SERVER 客户端网络实用工具 SQL SERVER 客户端网络实用工具 Win8运行命令:计算机管理   8.cmstp:连接管理器配置文件安装程序   9.cmd.exe:CMD命令提示符 打开CMD命令提示符   10.自动关机命令    Shutdown -s -t 600:表示600秒后自动关机    shutdown -a :可取消定时关机   

计算机网络的发展历程,你真的清楚吗

会有一股神秘感。 提交于 2020-03-24 23:21:23
既然入了网工的坑,那么我们首先就需要对网络的发展历程有个大致的了解。这就好比日后别人问起你的奋斗史,假若你连自己的奋斗历程都说不明白,这可就有点尴尬了。好了,闲话少说,咱们步入正题。 前言 虽然计算机网络仅仅经历了几十年的发展历程,但如今它已经成为了人们生活中不可或缺的一部分。21世纪的一些重要特征就是数字化、网络化和信息化,它是一个以网络为核心的信息时代。要实现信息化就必须依靠完善的网络,因为网络可以迅速的传递信息,网络已经成为信息社会的命脉和发展知识经济的重要基础。 一、 Internet的发展历程 互联网的基础结构大致经历了三个阶段的演进。这三个阶段在时间划分上并非截然分开的,而是存在部分重叠,这是因为网络的演进是渐变的,而非在某一天突然发生了质的飞越。 从单个网络ARPANE向互联网发展的过程。 1969年美国国防部创建的第一个分组交换网络ARPANET最初只是一个单个的分组互联网(当时连一个互连的网络都算不上)。所有要连接在ARPANET上的主机都直接与就近的结点交换机相连。但是到了20世纪70年代中期,人认识到不可能仅使用一个单独的网络来满足所有的通信问题。于是ARPA开始研究多种网络(如分组无线网络)互连的技术,这就导致了互连网络的出现。当时的美国国防部只是希望通过网络加快信息的传递,以此应对可能面临的威胁,因此,互联网的诞生只是一个意外。他们未曾想到,有朝一日

系统性能指标查看方法-Linux

醉酒当歌 提交于 2020-03-24 14:43:53
3 月,跳不动了?>>> 一、 监控CPU 使用率 1、 Linux提供了监控CPU使用率的命令行工具,可以保留文本形式的CPU使用率运行历史和日志。常用的命令有:vmstat、mpstat、top等等,下面只是top命令的一个截图,其他的命令的使用方式,请自行搜索。 图1-1 Linux的top命令不仅包括CPU使用率也包括进程统计数据和内存使用率。上面的截图显示它的输出主要包含两个部分,上部分是整个系统的统计信息,下半部分是进程的统计信息(默认按CPU使用率由高到低排序)。 二、 CPU 调度程序运行队列 1、 Linux上可以用vmstat命令监控运行队列长度。Vmstat输出的第一列是运行队列长度,值是运行队列中轻量级进程的实际数量。如下图,红色方框列即为运行队列。 图1-2 三、 内存使用率 1、 Linux上可以用mstat输出中的free列监控页面交换,也可以用其他方法例如top命令来监控。这里介绍用vmstat监控页面交换。需要监控vmstat中的si和so,他们分别表示内存页面换入和换出的量。此外,free列显示可用的空闲内存,留意是否会同时出现空闲内存少和页面调度频繁的情形,相比而言,实际的数量单位反而不那么重要。如果观察到上述统计数据的模式,说明系统可能在进行页面交换。下面示例中的系统没有页面交换,因为si和so 没有页面调度,而且空闲内存很多。 图1-3 2

Android笔记五-intent

吃可爱长大的小学妹 提交于 2020-03-13 23:48:20
intent最主要的特点是它是一个用户概念。像所有其它ANDROID概念一样,不能从系统的角度去理解它。应该从用户的角度去理解它。意思是,当我们要解释某一个东西的时候,不是说,这个在系统中的功能是......而是说,这个是......换句话说,既然是Android,自然要说“人”话。 intent另一个特点是它的内涵:意图,意欲。意思是,它所表达的全部就只是一个“我想要...(什么)”这样的概念。可以用消息来解释它的存在,说:哦!我明白了,它就是消息嘛!但是这样说是不对的,因为这不是ANDROID的认识观。ANDROID的认识观是一种用户角度的认识观。意思是,你将要写的每一个东西,它不从属于系统,它从属于用户。因为ANDROID是一个真正的用户的系统,而不是程序员的系统。 或者说,ANDROID对其所有系统功能进行包装以后,暴露出来的就是一个纯粹的用户化语义环境。你甚至不需要去考虑面向对象这样的东西,因为ANDROID已经帮你考虑全了。或者说,你需要考虑的,就只剩下你自己的应用,并且在这个过程中,使用的也全部是你自己的语言(人话),而不是机器或所谓“系统”的语言。这意味着你无须频繁地在系统级与用户级语义间跳转说辞,你只需简单地把你的需求或想法“说”出来。并且再进一步,如果需要的话,把它介绍给别人。并且,在整个过程中,你使用的一直都是“人话”。 众所周知

课外扩展(一)

匆匆过客 提交于 2020-03-03 04:31:44
认识嵌入式系统 嵌入式系统简介 嵌入式系统由硬件和软件组成.是能够独立进行运作的器件。其软件内容只包括软件运行环境及其操作系统。硬件内容包括信号处理器、存储器、通信模块等在内的多方面的内容。嵌入式系统是以应用为中心,以现代计算机技术为基础,能够根据用户需求(功能、可靠性、成本、体积、功耗、环境等)灵活裁剪软硬件模块的专用计算机系统。 要点概括: 以应用为中心:强调嵌入式系统的目标是满足用户的特定需求。就绝大多数完整的嵌入式系统而言,用户打开电源即可直接享用其功能,无需二次开发或仅需少量配置操作。 专用性:嵌入式系统的应用场合大多对可靠性、实时性有较高要求,这就决定了服务于特定应用的专用系统是嵌入式系统的主流模式,它并不强调系统的通用性和可扩展。这种专用性通常也导致嵌入式系统是一个软硬件紧密集成的最终系统,因为这样才能更有效地提高整个系统的可靠性并降低成本,并使之具有更好的用户体验。 以现代计算机技术为核心:嵌入式系统的最基本支撑技术,大致上包括集成电路设计技术、系统结构技术、传感与检测技术、嵌入式操作系统和实时操作系统技术、资源受限系统的高可靠软件开发技术、系统形式化规范与验证技术、通信技术、低功耗技术、特定应用领域的数据分析、信号处理和控制优化技术等,它们围绕计算机基本原理,集成进特定的专用设备就形成了一个嵌入式系统。 软硬件可裁剪:嵌入式系统针对的应用场景如此之多

magento系统自带批量小结

家住魔仙堡 提交于 2020-03-02 19:11:09
接触magento也快2个月了,由什么都不知道的小白----------到能够独立搭建网站---------到独立写一点属性的代码,其中有苦也有甜,有时候为了一个简单了问题你可能要奋战到深夜,但是现在想想其实都没什么,主要在于自己收获了什么。 事先说明:仅个人经验分享,如果有大神感觉垃圾,还请原谅,更多的希望大家能很好的交流。 今天我就和大家详细分享一下magento数据的批量上传修改等 因为网上教程太多了,而且很杂,很多还是英文的,对于刚接触的新手来说,批量这是一个比较麻烦的事,今天我们就从最基本的一步一步来教会大家使用。 第一: 其实magento批量可以用插件也可以用magento自带的上传功能,个人推荐的是magento自带的 第二: 我们首先打开magento后台,选中如图所示的Export导出功能 这里说明一下,magento自带的导入功能有2种一个是I E方式的一个是底下Dataflow数据流方式的,这里我们介绍的是I E方式的,后面我会说他们的区别的。 第三: 点击Export后会进入一个选择页面我们选择的是产品,如下图 第四: 选择Products后页面会自动跳进一个下载页面如下图 ,按照红色方框选 选择好所有产品后导出。 这里说明一下,如果你是首次安装magento并且没有安装演示数据,那么这里是没有任何数据能导出的

linux C 经常要用到的man和whatis组合查看系统调用函数

◇◆丶佛笑我妖孽 提交于 2020-03-02 06:52:46
有些时候看到的系统函数不知道什么意思,这个时候就可以通过 whatis 与 man 组合了 比如:printf 打印出来的有两行,说明一部分在man 手册的第一本书里,一部分在第三本书里 查看完毕之后,就要用到man了 如果迷惑man有几本书的话,执行 man man 就能找到man手册9本每本代表的是什么意思了,如下图 根据上图能够了解man手册的每本的作用,那么继续做例子 man printf 是默认选择第一个搜索到的和man 1 printf等价,这里都是显示第一本书 man 1 printf 指定显示第一本书里有关printf的内容 如果是在终端输入 man 3 printf 的话,显示的是下面的图片,主要就是系统调用的函数声明格式,其实自己想要看的确实是这一部分 来源: oschina 链接: https://my.oschina.net/u/114929/blog/228633

【转】Mac上Gdb安装和使用的过程

孤街浪徒 提交于 2020-02-08 09:52:35
转载声明 本文仅作笔记供参考, 原文链接: https://blog.csdn.net/wj1066/article/details/83653153 0.1 背景 Gdb是一款代码调试工具。Mac下依旧支持,但是由于MacOS系统本身以及版本不协调等原因使用过程会遇到各种各样的问题。本文详细记录了从Gdb安装,钥匙串配置,与VScode结合调试的过程。 0.2 版本 Mac版本:macOS High Sierra 10.13.6 Gdb版本:8.0 1 Gdb安装 最快捷的方法是使用brew来安装,命令如下。 brew install gdb 目前(2018.11.2)brew install 默认会安装8.2版本,但是在后续使用的过程遇到了一些问题(Mac high Sierra和gdb8.0以上的版本有很多地方不兼容,强烈不建议使用),所以不建议使用这个版本。笔者建议使用8.0的版本,8.0安装如下方式。 点击这个链接下载8.0源码的安装包 http://ftp.gnu.org/gnu/gdb/gdb-8.0.tar.gz 然后解压。进入解压后的目录,依次执行如下命令。 配置 ./configure 编译 make -j4 安装 make install 查看gdb版本 gdb -v 一切顺利的话可以看到gdb的版本为8.0。 2 配置调试权限