web32
Android从零开始搭建MVVM架构(4)————Room(从入门到进阶)(1)
xcbyaya
程序员android架构java
意思就是我们要往数据库里建表、建字段。就是使用这个bean对象。首先介绍下注解@Entity:数据表的实体类。@PrimaryKey:每一个实体类都需要一个唯一的标识。@ColumnInfo:数据表中字段名称。@Ignore:标注不需要添加到数据表中的属性。@Embedded:实体类中引用其他实体类。@ForeignKey:外键约束。这里我们建一个Person类(为了能保存数据,使数据持久化且Ro
Android车机DIY开发之学习篇(七)NDK交叉工具构建
勿忘初心91
车机DIY学习嵌入式硬件arm开发单片机
Android车机DIY开发之学习篇(七)NDK交叉工具构建1.ubuntu安装GCCsudoapt-getupdatesudoapt-getinstallgccg++sudogcc--versionsudog++--version2.测试GCCVSCODE中新建Hello.c编译#includeintmain(void){printf(“Hello,thisisaprogramcompiledb
Android Jetpack系列(一) Room
游逸丶
AndroidJetpackAndroidjetpackRoomAndroidAAC
AndroidJetpack系列(一)Room前言Room简介Room使用1引用2编写Entity实体类2编写Dao数据操作类3编写Database数据库操作类4调用示例前言Jetpack是2017年谷歌在开发者大会上发布的一套开发工具。Jetpack共包含4个部分:Architecture、Foundation、Behavior以及UI。其中的Architecture又称为AAC(Android
Android---Room(三)
无所事事的程序员
Android
当表的结构发生变化时处理方法:下面方法共同点就是版本号+1最简单的方法就是在数据库创建时,执行破坏式的迁移.fallbackToDestructiveMigration()//破坏式迁移INSTANCE=Room.databaseBuilder(context.getApplicationContext(),WordDatabase.class,"worddatabase").fallbackTo
Android Room 使用
francisHuang
android学习androidRoom数据库
官网介绍:https://developer.android.google.cn/training/data-storage/roomRoom是在SQLite上提供了一个抽象层,以便在充分利用SQLite的强大功能的同时,能够流畅地访问数据库。Room包含3个重要部分:数据库:包含数据库持有者,并作为应用已保留的持久关系型数据的底层连接的主要接入点。Entity:表示数据库中的表。DAO:包含用于
python与excel整合全教程
刘同学Python学习日记
pythonexcel开发语言
Python与Excel的整合非常强大,尤其适合处理大数据、自动化表格操作以及进行高级数据分析。以下是一个全教程,涵盖常用的Python库及其应用:1.准备工作安装必要的库:使用以下命令安装常用库:pipinstallopenpyxlpandasxlrdxlsxwriterpywin32openpyxl:用于操作Excel的.xlsx文件(推荐)。pandas:强大的数据分析工具,支持读取和写入E
[Android]service命令的使用
aaajj
Androidandroid
在前面的讨论中,我们说到,如果在客户端懒得使用aidl文件生成的接口类进行binder,可以使用IBinder的transcat方法ParceldataParcel=Parcel.obtain();ParcelresultParcel=Parcel.obtain();dataParcel.writeInterfaceToken(DESCRIPTOR);//发起请求aProxyBinder.tran
[Android]init中添加新的command
aaajj
Androidandroid
在Android的init进程中,command是用于定义启动时要执行的具体命令行指令的关键部分。init进程是Android系统启动的第一个进程,它负责初始化系统的各个组件,并启动必要的服务。command可以在init.rc文件及其包含的其他.rc文件中找到,通常作为on操作块或service定义的一部分。1.command的基本概念command是一条或多条具体的命令行指令,它们在特定条件下
adb shell dumpsys 命令查看内存
2401_89693697
adbgitee
C:\Users\asus>adbshellservicelistFound163services:0call_adapter:[com.android.internal.telecom.IMzInCallAdapter]1flyme_novccusagestats:[android.nonvccUsageStats.INonVccStatsInterfaces]2alphame_server:[
Python 数据分析 - 初识 Pandas
一名技术极客
#Python进阶爬虫python数据分析pandas
Python数据分析-初识Pandas简介SeriesDataFrame创建基本操作添加删除简介Pandas基于NumPy开发,它提供了快速、灵活、明确的数据结构,旨在简单、直观地处理数据。Pandas适用于处理以下类型的数据:有序和无序的时间序列数据带行列标签的矩阵数据,包括同构或异构型数据与SQL或Excel表类似的,含异构列的表格数据任意其它形式的观测、统计数据集,数据转入Pandas数据结
github最强Chatbox AI 模型桌面,支持 ChatGPT、Claude等主流模型,适用于 Win、Linux等,总结文档图片并互动,智能编程,AI实时联网搜索与查询,图片生成,科研写作等
struggle2025
人工智能深度学习语音识别计算机视觉语言模型图像处理数据分析
一、软件介绍(文末提供下载)Chatbox是一个AI模型桌面客户端,支持ChatGPT、Claude、GoogleGemini、Ollama等主流模型,适用于Windows、Mac、Linux、Web、Android和iOS全平台。github地址:GitHub-Bin-Huang/chatbox:User-friendlyDesktopClientAppforAIModels/LLMs(GPT,
Android Gradle Kotlin DSL,使用Kotlin来构建Gradle
张雨zy
kotlinAndroid基础
Demohttps://gitee.com/olleh/my-kotlin-dsl.gitGradleKotlinDSL我们现在AndroidStudio是使用Gradle来编译,而默认的构建语言是Groovy,我们可以用Kotlin来代替Groovy,Groovy构建脚本是.gradle结尾,Koltin构建的脚本则是.gradle.kts结尾优势:节约Groovy的学习成本错误提示代码自动补全
构建新纪元:Gradle中Kotlin插件的配置全指南
2402_85758936
kotlin开发语言android
构建新纪元:Gradle中Kotlin插件的配置全指南引言Kotlin,这门现代、简洁的语言,正在逐渐成为Java平台的有力补充。随着Kotlin在Android开发中的广泛采用,以及对服务器端和Web开发的支持,Kotlin插件在Gradle中的配置变得尤为重要。本文将深入探讨如何在Gradle中配置Kotlin插件,以充分利用Kotlin语言的强大功能。Kotlin与Gradle插件Kotli
Failed to resolve: com.github.*
冰峰雪岭
安卓gradlemavenjava
引入外部包时常见说要在项目根目录的build.gradle中添加allprojects{repositories{......maven{url'https://jitpack.io'}}}但还是会报错Failedtoresolve:com.github.*最新的androidStudio要到根目录的settings.gradle中去添加repositories{......maven{url'h
Android车机DIY开发之硬件篇(三)—NXP开发板介绍
勿忘初心91
车机DIYandroid单片机mcu嵌入式硬件arm开发
Android车机DIY开发之硬件篇(三)—NXP开发板介绍1.讯为iTOP-iMX8MMini开发板官网介绍MINIPCIE可外接miniPCIE接口的4G模块,具备PCIE2.0单通道WIFI/BT支持4G模块支持(选配)MIPI-DSI1个无HDMISpeaker2路MIC支持MIC输入PHONE支持耳机输出CAN1路Speaker2路SDIO/GPIO接口20PINAndroid9.0系统
Android车机DIY开发之软件篇(三)编译Automotive OS错误(1)
勿忘初心91
android嵌入式硬件mcugithub单片机
Android车机DIY开发之软件篇(三)编译AutomotiveOS错误(1)问题FAILED:out/soong/build.ninjacd“KaTeXparseerror:Expected'EOF',got'&'atposition49:…soong_build")"&̲&BUILDER="PWD/KaTeXparseerror:Expected'EOF',got'&'atposition5
Android知识点目录
迷路啦
Androidandroidjava知识点
本人参考了一本书籍,但是那本书比较“坑”,没有很详细的介绍各个知识点,都还需要别人去单独搜索查询详细资料,那这本书实际就只是来了解个目录了。。。持续更新中...第1章Android触摸事件传递机制1.1触摸事件的类型1.2事件传递的三个阶段1.3View的事件传递机制1.4ViewGroup的事件传递机制触摸事件的分析与总结第2章AndroidView的绘制流程2.1绘制的整体流程2.2Measu
React Native开发从入门到精通
赵梓宇
reactnative学习react.js
目录第一部分:ReactNative入门ReactNative简介什么是ReactNativeReactNative与原生开发对比ReactNative的优缺点开发环境搭建Node.js和npm的安装ReactNativeCLI和Expo的安装与使用AndroidStudio和Xcode配置模拟器和真机调试环境搭建第一个ReactNative应用创建项目项目结构解析简单的页面编写和运行第二部分:R
JDK7 正则表达式 捕获组命名
u010466329
正则表达式正则表达式
jdk6之前的正则表达式不支持命名捕获组功能,只能通过捕获组的索引来访问捕获组。当正则表达式比较复杂的时候,里面含有大量的捕获组和非捕获组,通过从左至右数括号来得知捕获组的计数也是一件很烦人的事情;而且这样做代码的可读性也不好,当正则表达式需要修改的时候也会改变里面捕获组的计数。解决这个问题的方法是通过给捕获组命名来解决,就像Python,PHP,.Net以及Perl这些语言里的正则表达式一样.新
Python-作业统计管理系统
Vicky__3021
Python实例python编程语言
目录一、设计目的二、需求分析三、总体设计1.系统流程设计2.系统模块设计四、详细设计1.模块选择2.界面设计3.模块实现五、总结六、感想七、Python源码mainexcelhandlejob一、设计目的1、教学目的本课程设计是学生学习完《Python程序设计》课程后,进行的一次全面的综合训练,通过课程设计,更好地掌握使用Python语言进行程序设计的方法,加深对Python语言特点和使用Pyth
adb和夜神模拟器安装
小徐徐呀
测试工具
adb是什么概念:adb全名是Androiddebugbridge,是Android调试桥的缩写,adb是一个c/s架构的命令行工具,用于通过电脑端与服务器或者真实设备交互,使用adb这个工具可以直接操作和管理安卓模拟器或真实的安卓设备sdk:软件开发套件在安卓开发环境中,adb是经常作为开发的调试工具,使用adb的前提是打开手机上USB调试,然后通过数据线连接到电脑上通过adb,我们可以通过Ec
Python酷库之旅-第三方库Pandas(005)
神奇夜光杯
pythonpandas开发语言标准库及第三方库基础知识学习和成长
目录一、用法精讲7、pandas.read_clipboard函数7-1、语法7-2、参数7-3、功能7-4、返回值7-5、说明7-6、用法7-6-1、代码示例7-6-2、结果输出8、pandas.DataFrame.to_clipboard函数8-1、语法8-2、参数8-3、功能8-4、返回值8-5、说明8-6、用法8-6-1、代码示例8-6-2、结果输出9、pandas.read_excel函
ACTF2020 新生赛 Upload 1
xinjuun
CTF网络安全
打开网页发现是个文件上传的页面,试着上传php文件,发现不行后,尝试burp抓包,修改文件后缀,进行前端绕过,发现可行。具体步骤如下:1、书写一句话木马,例如:eval和assert:php任意代码执行的一句话后门,我们喜欢用的是传统的eval,php5,7通用。create_function和preg_replace函数:create_function,它的作用是创建一个匿名函数,在内部也相当于
PHP代码免费加密平台:保护你的代码安全
网友阿贵
PHPphp
PHP代码免费加密平台:保护你的代码安全引言在开发过程中,保护源代码的安全性是非常重要的。PHP作为一种广泛使用的服务器端脚本语言,其代码的安全性尤为重要。为了帮助开发者更好地保护自己的代码,我们推出了PHP代码免费加密平台(php.javait.cn)。本文将详细介绍该平台的功能和使用方法。平台简介1.平台功能PHP代码免费加密平台提供了以下主要功能:PHP混淆加密:无需安装组件运行,兼容主流P
最全的ADB命令合集
启航风起时
安卓adblinux命令Android
ADB命令大全转载于此GitHub仓库。注:有部分命令的支持情况可能与Android系统版本及定制ROM的实现有关。基本用法命令语法为命令指定目标设备启动/停止查看adb版本以root权限运行adbd指定adbserver的网络端口设备连接管理查询已连接设备/模拟器USB连接无线连接(需要借助USB线)无线连接(无需借助USB线)应用管理查看应用列表所有应用系统应用第三方应用包名包含某字符串的应用
Android如何让应用在待机休眠的维持心跳运行
启航风起时
安卓android
Android如何让应用在待机休眠的情况下维持心跳连接Android省电机制1.如何让CPU不休眠通过WakeLock唤醒锁通过AlarmManager进行定时唤醒并解锁屏幕AlarmManager的使用AlarmManager的唤醒类型存在的问题为啥不用Timer或者handler执行定时任务通过JobScheduler定时唤醒JobScheduler使用存在的问题避免电池优化白名单申请通过Wi
X264编译SO库
启航风起时
服务器github运维
#!/bin/bashecho">>>>>>>>>编译x264android-v7a>>>>>>>开始编译>>>>>编译完成!<<<<<<"}build_android
简述大前端技术栈的渲染原理
程序员
作者:京东物流卢旭大前端包括哪些技术栈大前端指的是涵盖所有与前端开发相关的技术和平台,应用于各类设备和操作系统上。大前端不仅包括Web开发,还包括移动端开发和跨平台应用开发,具体包括:•原生应用开发:Android、iOS、鸿蒙(HarmonyOS)等;•Web前端框架:Vue、React、Angular等;•小程序开发:微信小程序、京东小程序、支付宝小程序等;•跨平台解决方案:ReactNati
redis学习笔记——不仅仅是存取数据
Everyday都不同
returnSourceexpire/delincr/lpush数据库分区redis
最近项目中用到比较多redis,感觉之前对它一直局限于get/set数据的层面。其实作为一个强大的NoSql数据库产品,如果好好利用它,会带来很多意想不到的效果。(因为我搞java,所以就从jedis的角度来补充一点东西吧。PS:不一定全,只是个人理解,不喜勿喷)
1、关于JedisPool.returnSource(Jedis jeids)
这个方法是从red
SQL性能优化-持续更新中。。。。。。
atongyeye
oraclesql
1 通过ROWID访问表--索引
你可以采用基于ROWID的访问方式情况,提高访问表的效率, , ROWID包含了表中记录的物理位置信息..ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系. 通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高.
2 共享SQL语句--相同的sql放入缓存
3 选择最有效率的表
[JAVA语言]JAVA虚拟机对底层硬件的操控还不完善
comsci
JAVA虚拟机
如果我们用汇编语言编写一个直接读写CPU寄存器的代码段,然后利用这个代码段去控制被操作系统屏蔽的硬件资源,这对于JVM虚拟机显然是不合法的,对操作系统来讲,这样也是不合法的,但是如果是一个工程项目的确需要这样做,合同已经签了,我们又不能够这样做,怎么办呢? 那么一个精通汇编语言的那种X客,是否在这个时候就会发生某种至关重要的作用呢?
&n
lvs- real
男人50
LVS
#!/bin/bash
#
# Script to start LVS DR real server.
# description: LVS DR real server
#
#. /etc/rc.d/init.d/functions
VIP=10.10.6.252
host='/bin/hostname'
case "$1" in
sta
生成公钥和私钥
oloz
DSA安全加密
package com.msserver.core.util;
import java.security.KeyPair;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
public class SecurityUtil {
UIView 中加入的cocos2d,背景透明
374016526
cocos2dglClearColor
要点是首先pixelFormat:kEAGLColorFormatRGBA8,必须有alpha层才能透明。然后view设置为透明glView.opaque = NO;[director setOpenGLView:glView];[self.viewController.view setBackgroundColor:[UIColor clearColor]];[self.viewControll
mysql常用命令
香水浓
mysql
连接数据库
mysql -u troy -ptroy
备份表
mysqldump -u troy -ptroy mm_database mm_user_tbl > user.sql
恢复表(与恢复数据库命令相同)
mysql -u troy -ptroy mm_database < user.sql
备份数据库
mysqldump -u troy -ptroy
我的架构经验系列文章 - 后端架构 - 系统层面
agevs
JavaScriptjquerycsshtml5
系统层面:
高可用性
所谓高可用性也就是通过避免单独故障加上快速故障转移实现一旦某台物理服务器出现故障能实现故障快速恢复。一般来说,可以采用两种方式,如果可以做业务可以做负载均衡则通过负载均衡实现集群,然后针对每一台服务器进行监控,一旦发生故障则从集群中移除;如果业务只能有单点入口那么可以通过实现Standby机加上虚拟IP机制,实现Active机在出现故障之后虚拟IP转移到Standby的快速
利用ant进行远程tomcat部署
aijuans
tomcat
在javaEE项目中,需要将工程部署到远程服务器上,如果部署的频率比较高,手动部署的方式就比较麻烦,可以利用Ant工具实现快捷的部署。这篇博文详细介绍了ant配置的步骤(http://www.cnblogs.com/GloriousOnion/archive/2012/12/18/2822817.html),但是在tomcat7以上不适用,需要修改配置,具体如下:
1.配置tomcat的用户角色
获取复利总收入
baalwolf
获取
public static void main(String args[]){
int money=200;
int year=1;
double rate=0.1;
&
eclipse.ini解释
BigBird2012
eclipse
大多数java开发者使用的都是eclipse,今天感兴趣去eclipse官网搜了一下eclipse.ini的配置,供大家参考,我会把关键的部分给大家用中文解释一下。还是推荐有问题不会直接搜谷歌,看官方文档,这样我们会知道问题的真面目是什么,对问题也有一个全面清晰的认识。
Overview
1、Eclipse.ini的作用
Eclipse startup is controlled by th
AngularJS实现分页功能
bijian1013
JavaScriptAngularJS分页
对于大多数web应用来说显示项目列表是一种很常见的任务。通常情况下,我们的数据会比较多,无法很好地显示在单个页面中。在这种情况下,我们需要把数据以页的方式来展示,同时带有转到上一页和下一页的功能。既然在整个应用中这是一种很常见的需求,那么把这一功能抽象成一个通用的、可复用的分页(Paginator)服务是很有意义的。
&nbs
[Maven学习笔记三]Maven archetype
bit1129
ArcheType
archetype的英文意思是原型,Maven archetype表示创建Maven模块的模版,比如创建web项目,创建Spring项目等等.
mvn archetype提供了一种命令行交互式创建Maven项目或者模块的方式,
mvn archetype
1.在LearnMaven-ch03目录下,执行命令mvn archetype:gener
【Java命令三】jps
bit1129
Java命令
jps很简单,用于显示当前运行的Java进程,也可以连接到远程服务器去查看
[hadoop@hadoop bin]$ jps -help
usage: jps [-help]
jps [-q] [-mlvV] [<hostid>]
Definitions:
<hostid>: <hostname>[:
ZABBIX2.2 2.4 等各版本之间的兼容性
ronin47
zabbix更新很快,从2009年到现在已经更新多个版本,为了使用更多zabbix的新特性,随之而来的便是升级版本,zabbix版本兼容性是必须优先考虑的一点 客户端AGENT兼容
zabbix1.x到zabbix2.x的所有agent都兼容zabbix server2.4:如果你升级zabbix server,客户端是可以不做任何改变,除非你想使用agent的一些新特性。 Zabbix代理(p
unity 3d还是cocos2dx哪个适合游戏?
brotherlamp
unity自学unity教程unity视频unity资料unity
unity 3d还是cocos2dx哪个适合游戏?
问:unity 3d还是cocos2dx哪个适合游戏?
答:首先目前来看unity视频教程因为是3d引擎,目前对2d支持并不完善,unity 3d 目前做2d普遍两种思路,一种是正交相机,3d画面2d视角,另一种是通过一些插件,动态创建mesh来绘制图形单元目前用的较多的是2d toolkit,ex2d,smooth moves,sm2,
百度笔试题:一个已经排序好的很大的数组,现在给它划分成m段,每段长度不定,段长最长为k,然后段内打乱顺序,请设计一个算法对其进行重新排序
bylijinnan
java算法面试百度招聘
import java.util.Arrays;
/**
* 最早是在陈利人老师的微博看到这道题:
* #面试题#An array with n elements which is K most sorted,就是每个element的初始位置和它最终的排序后的位置的距离不超过常数K
* 设计一个排序算法。It should be faster than O(n*lgn)。
获取checkbox复选框的值
chiangfai
checkbox
<title>CheckBox</title>
<script type = "text/javascript">
doGetVal: function doGetVal()
{
//var fruitName = document.getElementById("apple").value;//根据
MySQLdb用户指南
chenchao051
mysqldb
原网页被墙,放这里备用。 MySQLdb User's Guide
Contents
Introduction
Installation
_mysql
MySQL C API translation
MySQL C API function mapping
Some _mysql examples
MySQLdb
HIVE 窗口及分析函数
daizj
hive窗口函数分析函数
窗口函数应用场景:
(1)用于分区排序
(2)动态Group By
(3)Top N
(4)累计计算
(5)层次查询
一、分析函数
用于等级、百分点、n分片等。
函数 说明
RANK() &nbs
PHP ZipArchive 实现压缩解压Zip文件
dcj3sjt126com
PHPzip
PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有疑问欢迎交流。这里整理一下常用的示例供参考。
一、解压缩zip文件 01 02 03 04 05 06 07 08 09 10 11
精彩英语贺词
dcj3sjt126com
英语
I'm always here
我会一直在这里支持你
&nb
基于Java注解的Spring的IoC功能
e200702084
javaspringbeanIOCOffice
java模拟post请求
geeksun
java
一般API接收客户端(比如网页、APP或其他应用服务)的请求,但在测试时需要模拟来自外界的请求,经探索,使用HttpComponentshttpClient可模拟Post提交请求。 此处用HttpComponents的httpclient来完成使命。
import org.apache.http.HttpEntity ;
import org.apache.http.HttpRespon
Swift语法之 ---- ?和!区别
hongtoushizi
?swift!
转载自: http://blog.sina.com.cn/s/blog_71715bf80102ux3v.html
Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。如果在使用变量之前不进行初始化就会报错:
var stringValue : String
//
centos7安装jdk1.7
jisonami
jdkcentos
安装JDK1.7
步骤1、解压tar包在当前目录
[root@localhost usr]#tar -xzvf jdk-7u75-linux-x64.tar.gz
步骤2:配置环境变量
在etc/profile文件下添加
export JAVA_HOME=/usr/java/jdk1.7.0_75
export CLASSPATH=/usr/java/jdk1.7.0_75/lib
数据源架构模式之数据映射器
home198979
PHP架构数据映射器datamapper
前面分别介绍了数据源架构模式之表数据入口、数据源架构模式之行和数据入口数据源架构模式之活动记录,相较于这三种数据源架构模式,数据映射器显得更加“高大上”。
一、概念
数据映射器(Data Mapper):在保持对象和数据库(以及映射器本身)彼此独立的情况下,在二者之间移动数据的一个映射器层。概念永远都是抽象的,简单的说,数据映射器就是一个负责将数据映射到对象的类数据。
&nb
在Python中使用MYSQL
pda158
mysqlpython
缘由 近期在折腾一个小东西须要抓取网上的页面。然后进行解析。将结果放到
数据库中。 了解到
Python在这方面有优势,便选用之。 由于我有台
server上面安装有
mysql,自然使用之。在进行数据库的这个操作过程中遇到了不少问题,这里
记录一下,大家共勉。
python中mysql的调用
百度之后能够通过MySQLdb进行数据库操作。
单例模式
hxl1988_0311
java单例设计模式单件
package com.sosop.designpattern.singleton;
/*
* 单件模式:保证一个类必须只有一个实例,并提供全局的访问点
*
* 所以单例模式必须有私有的构造器,没有私有构造器根本不用谈单件
*
* 必须考虑到并发情况下创建了多个实例对象
* */
/**
* 虽然有锁,但是只在第一次创建对象的时候加锁,并发时不会存在效率
27种迹象显示你应该辞掉程序员的工作
vipshichg
工作
1、你仍然在等待老板在2010年答应的要提拔你的暗示。 2、你的上级近10年没有开发过任何代码。 3、老板假装懂你说的这些技术,但实际上他完全不知道你在说什么。 4、你干完的项目6个月后才部署到现场服务器上。 5、时不时的,老板在检查你刚刚完成的工作时,要求按新想法重新开发。 6、而最终这个软件只有12个用户。 7、时间全浪费在办公室政治中,而不是用在开发好的软件上。 8、部署前5分钟才开始测试。