精华内容
下载资源
问答
  • 学编程 复制粘贴 害死人 复制粘贴不好 我们讨厌复制粘贴。 为什么? 因为结果代码无法维护。 我收到了质量检查报告的错误,我分析了代码,看了日志,调试了,喝了很多咖啡,最后我得到了代码的根本原因。 我修复了...

    学编程 复制粘贴 害死人

    复制粘贴不好

    我们讨厌复制粘贴。 为什么? 因为结果代码无法维护。 我收到了质量检查报告的错误,我分析了代码,看了日志,调试了,喝了很多咖啡,最后我得到了代码的根本原因。 我修复了该问题,测试了用例,发布了新代码,以了解第二天在相似的用例中会出现一个非常相似的错误。 在这种情况下,另一种代码看起来与我前一天要修补的代码非常相似,而我只是开始怀疑我将要面对并必须更改同一代码的更多副本。

    有比复制粘贴更糟糕的事情

    现在想象一下像电影中那样的短发。 让我们跳到另一个时间。 我收到了质量检查报告的错误,并分析了代码。 我不明白。 有很多小型接口,抽象类,深层次结构。 许多课程与业务没有直接关系。 我向创建代码的开发人员寻求帮助,他开始解释。 在两天内,我开始理解他的编码结构思想,以及他如何以严格的面向对象的方式实现代码,从而避免了丝毫的复制/粘贴。 三天后,我找到了必须修改一行的地方。 在此之前,我计划先创建失败的单元测试,然后修复代码并重新运行单元测试,以确保不再发生相同的错误。 因此,我打开了将要修改的单元测试类,但我不了解它的工作方式。 它很复杂,并且扩展了另一个使用另一个类的类。 这一次比较容易理解,因为我已经了解了创建它的程序员的心态,但是创建新测试仍然是一整天。 在错误报告客户如虎添翼地寻求修复之后,我们已经进入了第4天。

    要复制还是不复制...

    哪种方法更好? 是否有一些复制粘贴并面对一些错误,这些错误只会出现在其他区域,或者在代码中具有极其严格但很深入的OO设计,从而避免了错误的再次出现,但学习曲线陡峭?

    这个问题没有答案,只有一个最好的答案。 它们都不是一个好方法。 有时,一些复制粘贴可能是可以原谅的罪过。 深层的继承结构很难理解。 通常建议不要超过三个级别。 可能还会有人争辩说,在以上示例中,可以在没有实际复制粘贴的情况下以较少的继承级别创建代码。 (除了以上内容不是实际的,而是从多年经验中总结出来的虚构示例。)重复的级别可能与OO结构冲突。 当您具有OO结构时,就可以进行抽象。 抽象代码很难理解。 当您复制,粘贴,修改时,修改后的代码将与您复制的代码处于同一抽象级别。 可能更容易理解。

    复制单元测试代码

    当涉及单元测试时,我倾向于原谅复制粘贴和冗长的内容,以获得更简单的结构和可读性。 但这是因为单元测试比文档更多的是文档。 当您立即查看时,它们必须具有表现力。 不需要调查和理解其他地方定义的代码结构即可了解测试的目的。 我倾向于同意单元测试,即复制一个测试,然后包含稍作修改的代码。 它仍然具有维护方面的缺点之一:如果更改代码,则更改必须传播到所有其他复制代码的地方。 但是在这种情况下,如果您忘记传播更改,则将得到测试错误或失败。 这样,您就可以将复制粘贴视为一个优势:更改代码时,您不得不查看,重构和考虑所有受影响的测试用例。

    不要复制生产代码

    在单元测试代码可能使生产代码变成噩梦的情况下,这些使缺点变成优势的效果。 如果您有疑问,请不要复制。 不要害怕创建过于陡峭的层次结构。 程序员更容易陷入复制粘贴陷阱,而不是陷入陡峭的层次结构。 除非您是高级程序员,否则建议您不惜一切代价避免在生产代码中粘贴粘贴。 如果您是高年级学生,则不需要我的建议:您将避免自己复制粘贴。

    边注

    只是一个故事: 前一段时间,我用代码写了一封有关复制粘贴的邮件,并创建了一个输入复制粘贴的错字。 几分钟后,我得到了答复:“面食? 您指的是意大利面条代码?” 命名预兆。

    翻译自: https://www.javacodegeeks.com/2015/01/use-copy-paste-programming.html

    学编程 复制粘贴 害死人

    展开全文
  • SQL语句复制粘贴

    千次阅读 2019-06-28 09:29:36
    开发工具与关键技术:SQL Server 2014与SQL 作者:戴怡斌 撰写时间:2019年6月27日 ...上一篇讲了如何用SQL语句创建数据库和表,这一篇还是SQL语句的类容,SQL语句里的复制粘贴。 打个比方,假如...
    
    开发工具与关键技术:SQL Server 2014与SQL
    
    作者:戴怡斌 
    
    撰写时间:2019年6月27日
    
    

    很多新手一开始学习创建数据库时,都是不知道创建一张表或者一个数据库都可以用SQL语句,SQL语句有很多实用价值,一般新手是不知道的,当然老师会讲,只是刚开始并不会将这些。

    上一篇讲了如何用SQL语句创建数据库和表,这一篇还是SQL语句的类容,SQL语句里的复制粘贴。

    打个比方,假如我创建一张员工表,表里面填写了很多关于员工的类容,有员工姓名,工资,员工编码等,然后发现不小心把员工编码和员工名称互换了,导致员工填写的员工名称跑到了员工编码上了。

    这个时候SQL语句可以解决这个问题。
    在这里插入图片描述
    表所在的数据库,因为SQL是根据数据库来查找的,数据库不对就找不到表,insert into后面很表名称,然后用鼠标选中,点击执行,就可以把你要复制的类容粘贴到你想要的粘贴的类容里,但只限在同一张表里面进行复制粘贴。
    在这里插入图片描述
    对于不同同表进行粘贴复制也可以,比如我刚新创建一张表,但发现这张表跟自己以前创建的表有多相同之处,不想在自己在敲一遍,偷个懒,复制一下。

    但要记住不同类型的表复制粘贴的话,会有数据紊乱,

    Update:相当于修改了,但跟修改又有点不同,不同之处敲了就知道了,原理跟一张表复制是差不多的,

    还有就是如果数据没出来,不要着急。刷新一下就可以了。
    在这里插入图片描述

    展开全文
  • 使用复制粘贴编程!

    2020-04-22 19:58:05
    复制粘贴不好 我们讨厌复制粘贴。 为什么? 因为结果代码无法维护。 我收到了质量检查报告的错误,我分析了代码,看了日志,调试了,喝了很多咖啡,最后我得到了代码的根本原因。 我修复了该问题,测试了用例,发布...

    复制粘贴不好

    我们讨厌复制粘贴。 为什么? 因为结果代码无法维护。 我收到了质量检查报告的错误,我分析了代码,看了日志,调试了,喝了很多咖啡,最后我得到了代码的根本原因。 我修复了该问题,测试了用例,发布了新代码以了解第二天在相似的用例中会出现一个非常相似的错误。 在这种情况下,另一种代码看起来与我前一天要修补的代码非常相似,而我只是开始怀疑我将面对并且必须更改同一代码的更多副本。

    有比复制粘贴更糟糕的事情

    现在想象一下像电影中的短笛。 让我们跳到另一个时间。 我收到了质量检查报告的错误,并分析了代码。 我不明白。 有很多小型接口,抽象类,深层次结构。 许多课程与业务没有直接关系。 我向创建代码的开发人员寻求帮助,他开始解释。 在两天内,我开始理解他的编码结构思想,以及他如何以严格的面向对象的方式实现代码,从而避免了丝毫的复制/粘贴。 三天后,我找到了必须修改一行的地方。 在此之前,我计划先创建失败的单元测试,然后修复代码并重新运行单元测试,以确保不再发生相同的错误。 因此,我打开了将要修改的单元测试类,但我不知道它是如何工作的。 它很复杂,并且扩展了另一个使用另一个类的类。 这次比较容易理解,因为我已经了解了创建它的程序员的思维方式,但是创建新测试仍然整天。 我们已经进入第四天,之后,错误报告客户纷纷要求修复。

    要复制还是不复制...

    哪种方法更好? 是否有一些复制粘贴并面对某些错误会出现在其他区域,或者在代码中具有极其严格但很深入的OO设计,从而避免了重新出现错误但学习曲线陡峭的问题?

    这个问题没有答案,只有一个最好的答案。 它们都不是一个好的方法。 有时,一些复制粘贴可能是可以原谅的罪过。 深层的继承结构很难理解。 通常建议不要超过三个级别。 可能还会有人争辩说,在上面的示例中,可以在没有实际复制粘贴的情况下以较少的继承级别创建代码。 (除了以上内容不是实际的,而是从多年经验中总结出来的虚构示例。)重复的级别可能与OO结构冲突。 当您具有OO结构时,就可以进行抽象。 抽象代码很难理解。 当您复制粘贴修改时,修改后的代码将与您复制的代码处于同一抽象级别。 可能更容易理解。

    复制单元测试代码

    当涉及单元测试时,我倾向于原谅复制粘贴和冗长的内容,以获得更简单的结构和可读性。 但这是因为单元测试比文档更多的是文档。 当您立即查看时,它们必须具有表现力。 不需要调查和理解其他地方定义的代码结构即可了解测试的目的。 我倾向于同意单元测试,即复制一个测试,然后包含稍微修改的代码。 它仍然具有维护方面的缺点之一:如果更改代码,则更改必须传播到所有其他复制代码的地方。 但是在这种情况下,如果您忘记传播更改,则会得到测试错误或失败。 这样,您可以将复制粘贴视为一个优势:更改代码时,您不得不查看,重构和考虑所有受影响的测试用例。

    不要复制生产代码

    在单元测试代码可能使生产代码变成噩梦的情况下,这些使缺点变成优点的效果。 如果您有疑问,请不要复制。 不要害怕创建过于陡峭的层次结构。 程序员更容易陷入复制粘贴陷阱,而不是陷入陡峭的层次结构。 除非您是高级程序员,否则建议您不惜一切代价避免在生产代码中粘贴粘贴。 如果您是高级学生,则不需要我的建议:您将避免自己复制粘贴。

    边注

    只是一个故事: 前一段时间,我用代码写了一些有关复制粘贴的邮件,并创建了一个输入复制粘贴的错字。 几分钟后,我得到了答复:“面食? 您指的是意大利面条代码?” 命名预兆。

    翻译自: https://www.javacodegeeks.com/2015/01/use-copy-paste-programming.html

    展开全文
  • 浅析Android中的复制粘贴控制

    千次阅读 2017-08-11 20:16:00
    但是我们如果想要复制粘贴更多东西而不仅仅是文本,或者在粘贴时对粘贴的对象进行处理过滤一些不希望粘贴出来的东西,在看完这篇文章后你对Android的复制粘贴有一个更深刻的认识。概述当我们需要使用复制粘贴功能...

    浅析Android中的复制粘贴控制

    我们都知道在Android系统的WebView中或者EditText上长按可以实现复制粘贴的功能,但是我们如果想要复制粘贴更多东西而不仅仅是文本,或者在粘贴时对粘贴的对象进行处理过滤一些不希望粘贴出来的东西,在看完这篇文章后你会对Android的复制粘贴有一个更深刻的认识。

    概述

    当我们需要使用复制粘贴功能时,首先要获得ClipboardManager对象

    ClipboardManager mCM = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
    

    接下来我们就可以利用这个对象进行复制和粘贴操作了,如果想把一段文字复制到剪切板

    mCM.setPrimaryClip(ClipData.newPlainText(null, “Hello ClipBoard”));
    

    我们就把Hello ClipBoard复制到了剪切板。

    如果想要获取剪切板的文本

    ClipData data = mCM.getPrimaryClip();
    ClipData.Item item = data.getItemAt(0);
    String copyStr = item.getText().toString()
    

    这样就实现了最简单的复制粘贴功能,当然,剪切板的功能可不止如此。

    复制粘贴的类型

    当使用ClipboardManager进行复制粘贴时,我们可以操作三种形式的数据,

    Text:字符串

    我们可以把字符串放入剪切板中吗,就如上面所示。

    URI:一个Uri对象

    表示任何形式的URI。这种形式主要用于从一个content provider中复制复杂的数据。复制的时候把一个Uri 对象放在一个clip对象中,然后再放在剪贴板里;粘贴的时候取出这个clip对象,得到Uri,把它解析为一个数据资源比如content provider,然后从资源中复制数据到应用存储中。

    Intent:Intent对象

    复制的时候把Intent对象放在clip对象中,再放入剪贴板;粘贴数据时,从clip对象中得到Intent对象,放入应用存储区域中。

    剪切板只在同一时间储存一个剪切对象,当我们把一个剪切对象复制到剪切板时,剪切板中原有的剪切对象就会消失

    剪切板相关的类

    ClipboardManager

    ClipboardManager代表了系统的剪贴板,我们不直接初始化这个类,而是通过getSystemService(CLIPBOARD_SERVICE)获取。

    ClipData, ClipData.Item 和 ClipDescription

    我们需要创建一个ClipData对象来把数据复制到剪切板中,这个ClipData对象包含一个数据的描述ClipDescription和一个或多个数据对象ClipData.Item

    其中ClipDescription是对剪切对象的描述,而ClipData.Item是要复制到剪切板的具体内容

    而如何获取这个ClipData对象呢,针对三种不同的剪切数据我们有三种不同的方法

    newPlainText(CharSequence label, CharSequence text)

    这个方法用于返回一个Text类型的ClipData对象,其中label为数据描述,text为数据,label的MIME类型是MIMETYPE_TEXT_PLAIN

    newUri (ContentResolver resolver, CharSequence label, Uri uri)

    这个方法用于返回一个URI类型的ClipData对象

    newIntent (CharSequence label, Intent intent)

    这个方法用于返回一个Intent类型的ClipData对象

    URI和Intent的剪切板功能我们用的不多,这里主要以文本对象为例说明其用法。

    文本的复制与粘贴

    1.要操作剪切板我们首先需要ClipboardManager对象

    ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
    

    2.如果需要复制,我们首先需要获取一个ClipData对象,对于文本来说,用

    ClipData clip = ClipData.newPlainText("simple text", "Hello, World!");
    

    获取该对象。然后将该对象放入剪切板中clipboard.setPrimaryClip(clip);,就可以使用剪切板了。

    3.如果需要粘贴,我们首先需要取出剪切板中的对象

    ClipData.Item item = clipboard.getPrimaryClip().getItemAt(0);
    

    然后转换为StringString pasteData = item.getText();就可以使用了

    当然我们这里要说的并不是这么简单,如果复制粘贴的时候需要屏蔽一些关键字,我们就需要去监听复制粘贴的事件了,这里以EditText为例说明如何监听其复制粘贴事件。

    EditText复制粘贴事件的监听

    要实现复制粘贴事件的监听,我们需要继承EditText,重写它的onTextContextMenuItem方法,同时新建一个EditTextClipListener的接口,用于监听的回调,具体代码如下

    /**
     * ClipControlEditText.java
     */
    public class ClipControlEditText extends android.support.v7.widget.AppCompatEditText {
    
        //事件监听器
        private ArrayList<EditTextClipListener> listeners;
    
        public ClipControlEditText(Context context) {
            super(context);
            listeners = new ArrayList<>();
        }
    
        public ClipControlEditText(Context context, AttributeSet attrs) {
            super(context, attrs);
            listeners = new ArrayList<>();
        }
    
        public ClipControlEditText(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
            listeners = new ArrayList<>();
        }
    
        public void addListener(EditTextClipListener listener) {
            try {
                listeners.add(listener);
            } catch (NullPointerException e) {
                e.printStackTrace();
            }
        }
    
    
        @Override
        public boolean onTextContextMenuItem(int id) {
            switch (id){
                case android.R.id.cut: //剪切
                    onTextCut();
                    break;
                case android.R.id.paste: //复制
                    onTextPaste();
                    break;
                case android.R.id.copy: //粘贴
                    onTextCopy();
                    break;
            }
            return super.onTextContextMenuItem(id);
        }
    
        public void onTextCut(){
            if (listeners != null) {
                for (EditTextClipListener listener : listeners) {
                    listener.onCut();
                }
            }
        }
    
        public void onTextCopy(){
            if (listeners != null) {
                for (EditTextClipListener listener : listeners) {
                    listener.onCopy();
                }
            }
        }
    
        public void onTextPaste(){
            if (listeners != null) {
                for (EditTextClipListener listener : listeners) {
                    listener.onPaste();
                }
            }
        }
    }
    

    EditTextClipListener接口有三个方法分别是onCut()、onCopy()和onPaste()

    public interface EditTextClipListener {
        void onCut();
        void onCopy();
        void onPaste();
    }
    

    接下来就可以在需要的地方监听了,在需要的地方调用

    et.addListener(new EditTextClipListener(){
        @Override
        public void onCut() {
    
        }
        @Override
        public void onCopy() {
    
        }
        @Override
        public void onPaste() {
    
        }
    });
    

    就可以监听EditText的复制粘贴同时处理一些其他的事情了,回到上文,如果我们想在复制粘贴时屏蔽某些字符,只要在回调方法中拿到剪切板中的对象,然后对对象进行一系列处理,再把处理后的对象放回剪切板中,就可以在粘贴时屏蔽需要的内容了

    ClipData data = mCM.getPrimaryClip();
    ClipData.Item item = data.getItemAt(0);
    if (item != null && !TextUtils.isEmpty(item.getText())) {
        String pasteStr = removeSomething(item.getText()) //删除字符串中的关键字
        ClipData newData = ClipData.newPlainText(data.getDescription().getLabel(), pasteStr2);
        mCM.setPrimaryClip(newData);
    }
    

    至于如何处理URI和Intent对象的复制粘贴,可以参考谷歌官方文档对于复制和粘贴的介绍

    展开全文
  • 用 Python 复制文件的 9 种方法具体是: shutil copyfile() shutil copy() shutil copyfileobj() ...1.只有当目标是可写的,这个方法才将源内容复制到目标位置。如果你没有写入权限,则导致 IOEr
  • 考虑到自己除了工作其他时间基本上不使用windows,因此打算使用nodejs来解决这一问题 发现不管什么编辑器只要将图片转换成base64后就可以直接使用(IE8及一下可能不支持),由于编辑器中添加word文档功能也只是自己...
  • 前言: ...本来这个功能就是h5嵌入原生功能的,里面有查看附件的功能,而且这个附件不是以url的链接方式给的,是以...1、于是一直搜索UIWebview禁用复制粘贴、超链接,结果搜索出来的解决方法如下: 方法一: if (@ava...
  • 最近在做一些关于EditText编辑功能的需求,遇到了很多的问题,比如EditText在RecyclerView中出现内容错乱、RecyclerView复用EditText后长按无法弹出复制粘贴、全选ContextMenu等一些问题,在网上也没有搜到比较...
  • 陡然想起,前段时间刚好加载了mathtype的插件,后来在“\Application Data\Microsoft\Word\STARTUP”下面将先前复制过来的MathPage.wll和MathType Commands 6 For Word.dot给删掉,再重启word发现又正常了。这...
  • java中文件输入输出流是FileInputStream和...首先创建两个流的对象: FileInputStream的构造方法有三种重载方式,常用的是FileInputStream(File file)和FileInputStream(String path),前者需要传递的是
  • 比如创建一个20万行*20列的数据,复制到另一张表,怎么样创建比较快呢? 要是想着循环20万次,每次都赋值一次到单元格,那可就太慢了,最好就是先循环赋值给数组,再讲数组的值赋值给单元格,这样几秒钟就可以搞定...
  • Grafana是一个可视化工具,主要用于监控报表的可视化,支持各种表格以及插件灵活拓展多种数据源,更多参见:...基于上面创建的Dashbord创建panel,一个panel就是一个可视化面板,在panel里面可以选择多种表格,例如:...
  • VSFlexGrid控件功能强大,百度一搜,就能找到如何使用该控件的入门例子了。...我也刚用完到这篇文章的粘贴复制、剪切功能实现的部分, 其中对粘贴功能做了一些修正。 引用的帖子,实现的功能是...
  • 在桌面新建一个*.txt文件。 打开这个txt文件进行编辑,输入以下命令: set/p="%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%"<...鼠标双击打开,时间+日期复制到了粘贴板: 20...
  • 在virtualbox设置了双向复制粘贴之后我发现依旧无法复制粘贴,应该是要安装了增强功能之后才行。 可以先不用更换成自己的源,官方的源可以更新。 首先用这个查看一下自己的内核是不是最新版的(uname不需要替代)...
  •  同时创建自己的动画效果会变得更加容易。 对于那些不熟悉CSS动画的人来说,仍然可以获得漂亮的动画效果。 所以,一定要亲自试试这些漂亮的动画。 将它们应用到你的网站上去,看看它们如何提升你的网页设计。
  • 通过代码实现上传阿里云oss首先需要AccessKey,首次使用需要创建AccessKey 阿里云OSS控制台下点击右上角头像进入AccessKey 管理 首次使用创建Access Key 导入pom坐标 <!--aliyunOSS--> <dependency&...
  • 考虑到自己除了工作其他时间基本上不使用windows,因此打算使用nodejs来解决这一问题 发现不管什么编辑器只要将图片转换成base64后就可以直接使用(IE8及一下可能不支持),由于编辑器中添加word文档功能也只是自己...
  • * 利用缓冲字节流来实现视频、音频、图片的复制粘贴 */ private static final String filePathSource = "E:/Test/TestBufferedStream/cxy.png" ; // 要复制的文件路径 private static final ...
  • 在VMware虚拟机中安装完毕Linux操作系统之后,我们经常发现桌面不能全屏显示或者windows主机系统与linux操作系统之间无法创建共享文件夹。这是因为我们还没有安装VMware tools工具。下面是本人在VMware虚拟机linux...
  • Backup把文件复制到用户设置的备份路径,并根据备份时间创建文件夹用来管理。 Export Backup根据文件名打开备份文件夹。 应用场合二 利用控制台命令将用户设置的Tag添加到剪切板或打开 想打开某个文件或...
  • Ubuntu系统下安装Windows虚拟机: 可以使用 sudo apt-get install virtualbox命令 安装(我选择的下面的方式)。...Virtualbox下实现主机(win10)和虚拟机(ubantu16.04)之间共享复制粘贴文本和文件夹 )  
  • 1:1 格拉摩根的洛斯里克城、有一个狗头人、名叫唯一丢人、是Paradox的伯爵、任天堂的主宰、育碧的bug、波兰蠢驴的打桩机。...在那里有产品的两个需求、抓文件时间信息、系统移植、当草履虫的神谕。1...
  • 首先是 web.xml里面的内容,建议直接复制粘贴,注意里面servlet的class对应好upload类 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee ...
  • 既然我们学会了如何查看目录文件,那这一章节我们就来学习如何创建文件、如何创建文件夹、以及文件的复制粘贴剪切的相关操作。在开始学习之前小编把进行需要掌握的内容一一列出来,更好的让大家掌握...
  • js复制粘贴板命令 clipboard ZeroClipboard
  • 关于这个自动更新的事情还有个小插曲,首先我是知道关于这个小技巧的,可是但我想去设置的时候突然忘记领了,自己去网上搜了一下,真的是服气,我估计有的人自己都没有试过,直接复制粘贴,这里我放上自己关于时间处理的...
  •  menuItemDate = new JMenuItem("日期/时间");  menuO = new JMenu("设置");  menuItemW = new JMenuItem("自动换行");  menuItemF = new JMenuItem("字体");  menuH = new JMenu("帮助");  ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,503
精华内容 30,601
关键字:

复制粘贴创建时间会变