??xml version="1.0" encoding="utf-8" standalone="yes"?>棒球比分直播运彩:BlogJava - 棒球比分大小怎么算|վ//www.355548.live/paulwong/zh-cnWed, 29 Jan 2020 20:59:49 GMTWed, 29 Jan 2020 20:59:49 GMT60Transform RemoteChunk to remote with json format in Spring Batch - 棒球比分大小怎么算|վ//www.355548.live/paulwong/archive/2020/01/21/435048.htmlpaulwongpaulwongTue, 21 Jan 2020 08:44:00 GMT//www.355548.live/paulwong/archive/2020/01/21/435048.html//www.355548.live/paulwong/comments/435048.html//www.355548.live/paulwong/archive/2020/01/21/435048.html#Feedback0//www.355548.live/paulwong/comments/commentRss/435048.html//www.355548.live/paulwong/services/trackbacks/435048.html
JsonToChunkRequestTransformer.java
package com.frandorado.springbatchawsintegrationslave.transformer;

import java.io.IOException;
import java.util.Collection;
import java.util.Map;
import java.util.stream.IntStream;

import org.springframework.batch.core.ExitStatus;
import org.springframework.batch.core.StepContribution;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.integration.chunk.ChunkRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.integration.aws.support.AwsHeaders;
import org.springframework.integration.json.JsonToObjectTransformer;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;

import com.amazonaws.services.sqs.AmazonSQSAsync;
import com.fasterxml.jackson.databind.ObjectMapper;

@Component
public class JsonToChunkRequestTransformer extends JsonToObjectTransformer {
    
    private static final String MESSAGE_GROUP_ID_HEADER = "message-group-id";
    
    @Autowired
    AmazonSQSAsync amazonSQSAsync;
    
    @Override
    protected Object doTransform(Message<?> message) throws Exception {
        // ACK
        ack(message);
        
        return this.getMessageBuilderFactory().withPayload(buildChunkRequest(message)).setHeader(MESSAGE_GROUP_ID_HEADER, "unique").build();
    }
    
    private ChunkRequest buildChunkRequest(Message<?> message) throws IOException {
        Map map = new ObjectMapper().readValue(message.getPayload().toString(), Map.class);
        Map stepContributionMap = (Map) map.get("stepContribution");
        Map exitStatusMap = (Map) stepContributionMap.get("exitStatus");
        
        StepContribution stepContribution = new StepContribution(new StepExecution("null", null));
        ExitStatus exitStatus = new ExitStatus((String) exitStatusMap.get("exitCode"), (String) exitStatusMap.get("exitDescription"));
        
        IntStream.range(0, (Integer) stepContributionMap.get("readCount")).forEach(e -> stepContribution.incrementReadCount());
        stepContribution.incrementWriteCount((Integer) stepContributionMap.get("writeCount"));
        stepContribution.incrementFilterCount((Integer) stepContributionMap.get("filterCount"));
        stepContribution.incrementReadSkipCount((Integer) stepContributionMap.get("readSkipCount"));
        IntStream.range(0, (Integer) stepContributionMap.get("writeSkipCount")).forEach(e -> stepContribution.incrementWriteSkipCount());
        IntStream.range(0, (Integer) stepContributionMap.get("processSkipCount"))
                .forEach(e -> stepContribution.incrementProcessSkipCount());
        stepContribution.setExitStatus(exitStatus);
        
        return new ChunkRequest((Integer) map.get("sequence"), (Collection) map.get("items"), (Integer) map.get("jobId"), stepContribution);
    }
    
    private void ack(Message<?> message) {
        String receiptHandle = message.getHeaders().get(AwsHeaders.RECEIPT_HANDLE, String.class);
        String queue = message.getHeaders().get(AwsHeaders.QUEUE, String.class);
        String queueUrl = amazonSQSAsync.getQueueUrl(queue).getQueueUrl();
        
        amazonSQSAsync.deleteMessage(queueUrl, receiptHandle);
    }
}


JsonToChunkResponseTransformer.java
package com.frandorado.springbatchawsintegrationmaster.transformer;

import java.io.IOException;
import java.util.Map;

import org.springframework.batch.core.StepContribution;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.integration.chunk.ChunkResponse;
import org.springframework.integration.json.JsonToObjectTransformer;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;

import com.fasterxml.jackson.databind.ObjectMapper;

@Component
public class JsonToChunkResponseTransformer extends JsonToObjectTransformer {
    
    @Override
    protected Object doTransform(Message<?> message) throws Exception {
        return buildChunkResponse(message);
    }
    
    private ChunkResponse buildChunkResponse(Message<?> message) throws IOException {
        Map map = new ObjectMapper().readValue(message.getPayload().toString(), Map.class);
        
        Integer jobId = (Integer) map.get("jobId");
        Integer sequence = (Integer) map.get("sequence");
        String messageContent = (String) map.get("message");
        Boolean status = (Boolean) map.get("successful");
        
        StepContribution stepContribution = new StepContribution(new StepExecution("-", null));
        
        return new ChunkResponse(status, sequence, Long.valueOf(jobId), stepContribution, messageContent);
    }
}

https://frandorado.github.io/spring/2019/07/29/spring-batch-aws-series-introduction.html
https://github.com/frandorado/spring-projects/tree/master/spring-batch-aws-integration/spring-batch-aws-integration-master/src/main/java/com/frandorado/springbatchawsintegrationmaster/transformer

paulwong 2020-01-21 16:44 发表评论
]]>
如何加CRON JOB到LINUX - 棒球比分大小怎么算|վ//www.355548.live/paulwong/archive/2020/01/21/435047.htmlpaulwongpaulwongTue, 21 Jan 2020 07:50:00 GMT//www.355548.live/paulwong/archive/2020/01/21/435047.html//www.355548.live/paulwong/comments/435047.html//www.355548.live/paulwong/archive/2020/01/21/435047.html#Feedback0//www.355548.live/paulwong/comments/commentRss/435047.html//www.355548.live/paulwong/services/trackbacks/435047.htmlhttps://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html


paulwong 2020-01-21 15:50 发表评论
]]>
Linux and Unix du command tutorial with examples - 棒球比分大小怎么算|վ//www.355548.live/paulwong/archive/2020/01/15/435038.htmlpaulwongpaulwongWed, 15 Jan 2020 09:17:00 GMT//www.355548.live/paulwong/archive/2020/01/15/435038.html//www.355548.live/paulwong/comments/435038.html//www.355548.live/paulwong/archive/2020/01/15/435038.html#Feedback0//www.355548.live/paulwong/comments/commentRss/435038.html//www.355548.live/paulwong/services/trackbacks/435038.htmlhttps://shapeshed.com/unix-du/




paulwong 2020-01-15 17:17 发表评论
]]>
SPRING INTEGRATION ERROR HANDLING - 棒球比分大小怎么算|վ//www.355548.live/paulwong/archive/2020/01/10/435027.htmlpaulwongpaulwongFri, 10 Jan 2020 07:32:00 GMT//www.355548.live/paulwong/archive/2020/01/10/435027.html//www.355548.live/paulwong/comments/435027.html//www.355548.live/paulwong/archive/2020/01/10/435027.html#Feedback0//www.355548.live/paulwong/comments/commentRss/435027.html//www.355548.live/paulwong/services/trackbacks/435027.htmlhttps://github.com/zakyalvan/spring-integration-java-dsl-learn

package com.jwebs.learn.errorhandling;

import java.util.Random;

import javax.jms.ConnectionFactory;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.integration.annotation.IntegrationComponentScan;
import org.springframework.integration.channel.PublishSubscribeChannel;
import org.springframework.integration.core.MessageSource;
import org.springframework.integration.dsl.IntegrationFlow;
import org.springframework.integration.dsl.IntegrationFlows;
import org.springframework.integration.dsl.core.Pollers;
import org.springframework.integration.dsl.jms.Jms;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.messaging.MessagingException;

/**
 * Show how to handle error in spring integration flow.
 * Please note, errorChannel in spring integration only applicable to
 * error thrown in asynch component.
 * 
 * 
@author zakyalvan
 
*/
@SpringBootApplication
@IntegrationComponentScan
public class ErrorHandlingApplication {
    public static void main(String[] args) throws Exception {
        ConfigurableApplicationContext applicationContext = new SpringApplicationBuilder(ErrorHandlingApplication.class)
                .web(false)
                .run(args);
        
        Runtime.getRuntime().addShutdownHook(new Thread(() -> applicationContext.close()));
        
        System.out.println("Pres enter key to exit");
        System.in.read();
        System.exit(0);
    }

    @Autowired
    private ConnectionFactory connectionFactory;
    
    @Bean
    public MessageSource<Integer> randomIntegerMessageSource() {
        return () -> MessageBuilder.withPayload(new Random().nextInt()).build();
    }
    
    @Bean
    public IntegrationFlow withErrorFlow() {
        return IntegrationFlows.from(randomIntegerMessageSource(), spec -> spec.poller(Pollers.fixedDelay(1000)))
                    .handle(Jms.outboundGateway(connectionFactory)
                    .requestDestination("processor.input")
                    .replyContainer(spec -> spec.sessionTransacted(true)))
                    .get();
    }
    
    @Autowired
    @Qualifier("errorChannel")
    private PublishSubscribeChannel errorChannel;
    
    @Bean
    public IntegrationFlow errorHandlingFlow() {
        return IntegrationFlows.from(errorChannel)
                .handle(message -> System.out.println("@@@@@@@@@@@@@@@@@@@@@" + ((MessagingException) message.getPayload()).getFailedMessage().getPayload()))
                .get();
    }
}


paulwong 2020-01-10 15:32 发表评论
]]>
APM资源 - 棒球比分大小怎么算|վ//www.355548.live/paulwong/archive/2019/12/30/435006.htmlpaulwongpaulwongMon, 30 Dec 2019 08:50:00 GMT//www.355548.live/paulwong/archive/2019/12/30/435006.html//www.355548.live/paulwong/comments/435006.html//www.355548.live/paulwong/archive/2019/12/30/435006.html#Feedback0//www.355548.live/paulwong/comments/commentRss/435006.html//www.355548.live/paulwong/services/trackbacks/435006.htmlhttps://my.oschina.net/10000000000/blog/3119697

监控理之Spring Boot Admin使用
https://my.oschina.net/xiedeshou/blog/2051625


https://my.oschina.net/janlle/blog/3040749

paulwong 2019-12-30 16:50 发表评论
]]>
微服?|关 - 棒球比分大小怎么算|վ//www.355548.live/paulwong/archive/2019/12/30/435005.htmlpaulwongpaulwongMon, 30 Dec 2019 08:44:00 GMT//www.355548.live/paulwong/archive/2019/12/30/435005.html//www.355548.live/paulwong/comments/435005.html//www.355548.live/paulwong/archive/2019/12/30/435005.html#Feedback0//www.355548.live/paulwong/comments/commentRss/435005.html//www.355548.live/paulwong/services/trackbacks/435005.htmlhttps://felord.cn/kong-api-gateway.html

云原生网?Kong 和Kong 理UI Konga的完全安装攻?br />https://felord.cn/kong-and-konga-install.html






paulwong 2019-12-30 16:44 发表评论
]]>
2020 qY件开发趋劉K有哪些Q?/title><link>//www.355548.live/paulwong/archive/2019/12/30/435004.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Mon, 30 Dec 2019 01:09:00 GMT</pubDate><guid>//www.355548.live/paulwong/archive/2019/12/30/435004.html</guid><wfw:comment>//www.355548.live/paulwong/comments/435004.html</wfw:comment><comments>//www.355548.live/paulwong/archive/2019/12/30/435004.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.355548.live/paulwong/comments/commentRss/435004.html</wfw:commentRss><trackback:ping>//www.355548.live/paulwong/services/trackbacks/435004.html</trackback:ping><description><![CDATA[<h3>基础设施Q条条道路通云?/h3><p data-spm-anchor-id="a2c6h.13066369.0.i12.58da6e62uYEUBC" style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">对于云厂商来_2019 q是果累篏的一q。不仅初创公司在使用云计,那些很注重安全的“保守z?#8221;公司Q如政府机构、医疗保健机构、银行、保险公司,甚至是美国五角大|也在q移C端。这U趋势在 2020 q将会l,大大小的公叔R(或者至有计划Q迁Ud云端。Gartner 公司最q发布了一个数字:</p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/0bfef0510c1348c6818e7c0fd62e1c0d.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">如果你是一个还在考虑要不要迁Ud云端的决{者,不妨重新审视一下你的策略。如果你是一个独立开发者,q且q没使用q云基础设施Q那么完全可以在 2020 q尝试一下。很多大型的云厂商(如亚马逊、微软、谷歌)都提供了免费的体验机会。谷歌在q方面做得特别大方,它提供了价?300 元的一q免Ҏ务?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/913339f136434be5af191c738af7c0e2.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">{划注:阉K、腾讯、华为等国内云厂商同h免费云服务试用品?/p><h3>云^収ͼ亚马逊领_其他跟上</h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">作ؓW一大云厂商Q亚马逊在 2019 q可谓风生水赗凭借其丰富的品组合,亚马逊将把它的优势gl到 2020 q。Canalys 发布?2019 q第三季度报告指出,大型云厂商(AWS、Azure、GCPQ占?56% 的市Z额,其中 AWS 独n 32.6%?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/d34f6d455f5f45a9b3ba05e90355765f.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">其他云厂商也在努力羃短与 AWS 之间的差距。微软把主要目标转向了大型企业。最q,微Y打|了亚马逊,从美国五角大楼拿C一?100 亿美元的大单子。这个单子将提升 Azure 的声誉,同时削弱 AWS 的士气?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/a444952dda9040ef9a308aa08e6e3d8e.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">h一直在推动 CNCFQ实C计算q维的标准化。谷歌的长期目标是让云迁Ud得更ҎQ方便企业从 AWS q移?GCP。IBM 之前斥资 360 亿美元收购了 RedHatQ也惌在云计算市场占有一席之地?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/ce9de1c45cf4433cbd2738a0a3cce835.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">在亚太地区,阉K云市模超q了 AWS、Azure 的dQ全球排名第三。中国国内腾讯云{企业的增长势头也十分迅猛?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">2020 q将出现更多的ƈ购。当Ӟ很多初创公司会带来新的x和创斎ͼ例如多云服务。因为竞争激烈,q些公司只能从降价和推出更多的创C品来获取利润?/p><h3>容器化:Kubernetes 会更酷</h3><p data-spm-anchor-id="a2c6h.13066369.0.i4.58da6e62uYEUBC" style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">在容器编排领域,虽然一度出C“三鼎立”QKubernetes、Docker Swarm ?MesosQ,?Kubernetes 最l脱颖而出Q成为绝对的赢家。云是一个分布式pȝQ?Kubernetes 是它?OSQ分布式?LinuxQ?019 q北?KubeCon+CloudNativeCon 大会的参会者达C 12000 名,?2018 q增长了 50%。以下是q去 4 q参会h数的增长情况?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/46dc555bee9d4314b11e2690aaa38101.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">?2020 q_Kubernetes 不仅不会后退Q只会变得越来越强,你完全可以把赌注压在 Kubernetes w上。另外值得一提的是,Migrantis 最q收购了 Docker EnterpriseQ不q收购数额不详?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/18a7dc3b400f4d85b988313526c8534c.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">几年前,Z张口闭口说的都是 DockerQ而现在换成了 Kubernetes。Docker 在它的全盛时期未能盈利,反而在优势渐退几年之后才尝试变现。这再次说明Q在C技术世界,时机是一切?/p><h3>软g架构Q微服务成Z?/h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">h势表明Q微服务架构范式?2019 q持l增长了一整年?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/07577b66d9b540998ede0f6ebc846ac6.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">随着软g行业整体逐步q移C端,微服务也成为占dC的架构范式。微服务架构崛v的一个主要原因是它与云原生完契合,可以实现快速的软g开发。我在之前的一博文中解释了微服务架构的基本原则及其优势和劣势?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">https://towardsdatascience.com/microservice-architecture-a-brief-overview-and-why-you-should-use-it-in-your-next-project-a17b6e19adfd</p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">我假讄在也存在一U回归到单体架构的趋势,因ؓ在很多情况下Q微服务架构有点q头了,而且做好微服务架构设计其实很难。微服务架构有哪些好的实践?在之前的另一博文中Q我也给Z一些大概,希望对读者有用?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">https://towardsdatascience.com/effective-microservices-10-best-practices-c6e4ba0c6ee2</p><h3>~程语言Q整体)QPython 吞噬世?/h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">机器学习、数据分析、数据处理、Web 开发、企业Y件开发,甚至是拼接黑z照片,Python 的媄子无处不在?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">在著名的~程语言排行榜网?TIOBE 上,Python 位居最行~程语言W三位,仅次?Java ?C 语言?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/22dbb6f358cc4c46855442435ee4f0dc.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">更有意思的是,?2019 q_Python 的流行度M一番(?5% ?10%Q?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">Python 的崛起将?2020 qgl,q羃短与 Java ?C 语言之间的差距。另一门无所不在的编E语a JavaScript 正面临下行的风险。ؓ什?Python 的势头会如此强劲Q因为它的入手门槛低Q有一个优U的社区在支持Qƈ受到数据U学家和新生代开发者的喜爱?/p><h3>~程语言Q企业方面)QJava 占d</h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">之前?TIOBE |站截图昄QJava 仍然是一门占dC的编E语aQƈ在 2020 ql保持这U地位。JVM ?Java 的基矻I其他~程语言Q如 Kotlin、Scala、Clojure、GroovyQ也?JVM 作ؓq行时。最q,Oracle 修改?JVM 的许可协议?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/4d28c879c0c0427bb7a134d13bb9e206.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">新的许可协议意味着使用 Java、Kotlin、Scala 或其?JVM ~程语言的公叔R要向 Oracle 支付大额费用。所q的是,OpenJDK ?JVM l箋免费。另外,q有其他一些公ؓ JVM 提供企业支持?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/eb1bc539b6e24a7fbd6f541c0493df0a.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">因ؓ体积和速度斚w的问题,Z JVM 的编E语aq不适合用在今天的无服务器环境中。Oracle 正在推动 GraalVM 计划Q旨在让 Java 变得更加敏捷和快速,让它更适合用在无服务器环境中。因为除?JavaQ没有其他编E语a可以提供企业U的E_性和可靠性,所?Java 在 2020 ql占dC?/p><h3>企业?JavaQSpring l箋发力</h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">曑և何时Q在企业开发领域,Spring ?JavaEE 之间存在着白热化的竞争。但因ؓ Oracle ?JavaEE 斚w没有作ؓQ在竞争中惨败,q导致了“MicroProfile”计划的Ş成,q最l促成了 JakartaEE?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">虽然所有的政策和活动都是围l?JavaEE 展开Q但 Spring 事实上已l赢得了q场企业 JVM 之争?020 q_Spring 成?JVM 生态系l的头牌?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">有两个正在进展中的项目,它们旨在减小 Java 的体U,让它更适合用在无服务器环境中?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">其中一个是 MicronautQhttps://micronaut.io/Q?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/3181542535da411e94dac5f548148541.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">另一个是 QuarkusQhttps://quarkus.io/Q?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/0666532c3a5a43ee9e92698f2c0296b3.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">q两个项目都使用?GraalVMQ它们在 2020 q将会得?Java C֌更多的关注?/p><h3>~程语言Q后起之U的突?/h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">2000 q代Q编E语a的发展出C停滞。大多数为没有必要再d发新的编E语aQJava、C 语言、C++、JavaScript ?Python 已经可以满所有的需求。但是,h?Go 语言为新~程语言大门打开了一扇大门。在q去十年出现了很多有的~程语言Q比?Rust、Swift、Kotlin、TypeScript。导致这U情늚一个主要原因是已有的编E语a无法充分利用g优势Q例如多核、更快的|络、云Q。另一个原因是C~程语言更加x开发者经,卛_现更快速更Ҏ的开发。在 Stackoverflow 提供的一份开发者报告中Q排名靠前的C~程语言如下所C(Rust q箋 4 q名列第一Q?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/85bd1d2f808a45ab92a71f12764f9126.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">在之前的一博文中Q我深入探讨了现代编E语aQ对?Rust ?Go 语言Qƈ说明了ؓ什么现在是采用q些语言的好时机?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">https://towardsdatascience.com/back-to-the-metal-top-3-programming-language-to-develop-big-data-frameworks-in-2019-69a44a36a842</p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">最q,微Y宣布他们在探索?Rust 来开发更安全的Y件?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/b4bfc8e1fb7b437490569b80dac3a214.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">亚马逊最q也宣布要赞?Rust?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/85329fe3c4b54a28811d1cd4ec9aa0ab.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">h宣布?Kotlin 作ؓ Android 官方开发语aQ所以,?JVM 领域QKotlin 成了 Java 的主要竞争对手?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/256f853fa72e4f42ac432d61df0d2be0.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">Angular 使用 TypeScript 代替 JavaScriptQ将其作Z要的~程语言Q其?JavaScript 框架Q如 React ?VueQ也开始ؓ TypeScript 提供更多的支持?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">q种势在 2020 qgl下去,很多巨头公司会深入了解C代编E语aQ如 Rust、Swift、TypeScript、KotlinQ,它们会站出来公开表示支持?/p><h3>WebQJavaScript l箋占主导地?/h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">曑և何时QJavaScript q不被认为是一门强大的~程语言。在当时Q前端内容主要通过后端框架在服务器端进行渲染?014 q_AngularJS 的出现改变了q种局面。从那个时候开始,更多?JavaScript 框架开始涌玎ͼAngular 2+、React、Vue、MeteorQ,JavaScript 已然成ؓL?Web 开发语a。随着 JavaScript 框架不断创新以及微服务架构的崛vQJavaScript 框架?2020 q将l箋d前端开发?/p><h3>JavaScript 框架QReact 闪耀</h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">虽然 React 是在 AngularJS 之后出现的,但在q去十年?Web 开发生了巨大的媄响,q也?Facebook 在与 Google+ 的竞争中打了一战。React 为前端开发带来了一些新的想法,比如事g溯源、虚?DOM、单向数据绑定、基于组件的开发,{等。它对开发者社Z生了重大影响Q以至于h攑ּ?AngularJSQƈ借鉴 React 的想法推Zd重写?Angular 2+。React 是目前ؓ止最为流行的 JavaScript 框架Q下图显CZ相关?NPM 下蝲l计信息?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/9d351058b1de4807a2a8ae3c87078888.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">Z获得更好的ƈ发和用户体验QFacebook 宣布完全重写 React 的核心算法,推出?React-Fiber 目?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/6fd523518e6444a2a3231a49bd2fbff6.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">2020 q_React 仍然是你开发新目的首?Web 框架。其他框Ӟ?Angular/Angular 2+ ?VueQ呢QAngular 仍然是一个不错的 Web 开发框Ӟ特别适合企业开发。我敢肯定谷歌在未来几年会在 Angular 上加大投入。Vue 是另一个非常流行的 Web 框架Q由中国的巨头公叔R里巴巴提供支持。如果你已经在?Angular ?VueQ就没必要再q移?React 了?/p><h3>App 开发:原生应用</h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">在移?App 开发方面,有关混合应用开发的炒作有所消停。؜合开发提供了更快的开发速度Q因为只需要一个开发团队,而不是多个。但原生应用提供了更好的用户体验和性能。另外,混合应用需要经q调整才能用一些高U特性。对于企业来_原生应用仍然是首选的解决ҎQ这U趋势将?2020 qgl。Airbnb 在一博文中非常详细地说明了Z么他们要攑ּ混合应用开发^?React Native?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">https://medium.com/airbnb-engineering/sunsetting-react-native-1868ba28e30a</p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">管 Facebook 试改进 React NativeQ谷歌也非常努力地推动؜?App 开发^?FlutterQ但它们仍然只适合用于原型、POC、MVP 或轻量应用的开发。所以,原生应用?2020 q仍l占dC?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">在原生应用开发方面,h和苹果分别将 Kotlin ?Swift 作ؓ各自q_主要的编E语a。谷歌最q再ơ重申了?Kotlin 的支持,q对?Kotlin 用户来说无疑是个好消息?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/f35d8fda69394f4abbd04064ca8257a0.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><h3>混合应用开发:React Native</h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">在很多情况下Q؜合应用是个不错的选择。在q方面也有很多选择QXamarin、Inoic、React Native ?Flutter。Facebook Z成熟?React 框架推出?React Native。就?React ?Web 框架领域占据dC一PReact Native 在؜合应用领域也占据着dCQ如下图所C?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/a81452d3794b4a55bcac6fe87bccdc8d.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">React Native ?React 有共同的基因Q都提供了高度的代码重用性以?#8220;一ơ开发,到处q行”的能力。React Native 的另一个优势是 Facebook 本n也用它来开发移动应用。谷歌在q个领域h较晚Q但在去q_h的؜合应用开发框?Flutter 获得了不关注。Flutter 提供了更好的性能Q但需要用另一门不是那么流行的~程语言 Dart。React Native ?2020 q将l箋占主导地位?/p><h3>APIQREST 占dC</h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">REST ?API 领域事实上的标准Q被q泛用在Z API 的服务间通信上。当Ӟ除了 RESTQ我们还有其他选择Q比如来自谷歌的 gRPC 和来?Facebook ?GraphQL?/p><p data-spm-anchor-id="a2c6h.13066369.0.i7.58da6e62uYEUBC" style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">它们提供了不同的能力。谷歌开发的 gRPC 作ؓq程q程调用Q如 SOAPQ的化nQ?Protobuf 代替 JSON 作ؓ消息格式。Facebook 开发的 GraphQL 作ؓ一个集成层Q避免频J的 REST 调用。gRPC ?GraphQL 都在各自的领域取得了成功?020 q_REST 仍然是占dC?API 技术,?GraphQL ?gRPC 作充技术?/p><h3>人工QTensorflow 2.0 占dC</h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">h?Facebook 也是深度学习 / 经|络领域的主要玩家。谷歌基于深度学习框?Theano 推出?TensorFlowQ它很快成为深度学?/ 经|络的主要开发库。谷歌还推出了特别设计的 GPUQTPUQ来加?TensorFlow 的计?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">Facebook 在深度学习领域也不甘落后Q他们拥有世界上最大的囑փ和视频数据集合。Facebook Z另一个深度学习库 Torch 推出了深度学习库 PyTorch。TensorFlow ?PyTorch 之间有一些区别,前者用的是静态图q行计算Q?PyTorch 使用的是动态图。用动态图的好处是可以在运行时U正自己。另外,PyTorch ?Python 支持更好Q?Python 是数据科学领域的一门主要编E语a?/p><p data-spm-anchor-id="a2c6h.13066369.0.i9.58da6e62uYEUBC" style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">随着 PyTorch 变得来流行,h也赶紧在 2019 q?10 月推Z TensorFlow 2.0Q也使用了动态图Q对 Python 的支持也更好?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/67f2d4c6eb9543c7b3f561c9ec8ebf0a.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">2020 q_TensorFlow 2.0 ?PyTorch 齐头ƈq。考虑?TensorFlow 拥有更大的社区,我估?TensorFlow 2.0 成为占dC的深度学习库?/p><h3>数据库:SQL是王?分布式SQL是王?/h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">在炒?NoSQL 的日子里Qh们嘲W?SQLQ还指出?SQL 的种U不뀂有很多文章?NoSQL 有多么的好,q将要取?SQL。但{到炒作的潮水褪去,Z很快意识到Q我们的世界不能没有 SQL。以下是最行的数据库的排名?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/6594d66494d1439b9b6e219d4efff102.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">可以看到QSQL 数据库占据了前四名。SQL 之所以占dCQ是因ؓ它提供了 ACID 事务保证Q?ACID 是业务系l最潜在的需求。NoSQL 数据库提供了横向伸羃能力Q但代h是不提供 ACID 保证?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">互联|公怸直在L“大师U数据库”Q也是既能提供 ACID 保证又能?NoSQL 那样可横向׾~的数据库。目前有两个解决Ҏ可以部分满?#8220;大师U数据库”的要求,一个是亚马逊的 AuroraQ一个是h?Spanner。Aurora 提供了几乎所有的 SQL 功能Q但不支持横向写伸羃Q?Spanner 提供了横向写伸羃能力Q但?SQL 支持得不好?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">2020 q_但愿q两个数据库能够走近Q或者有Z带来一?#8220;分布?SQL”数据库。如果真有h做到了,那一定要l他颁发囄奖?/p><h3>数据湖:MinIO 要崛v</h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">C数据q_非常的复杂。企业一般都会有支持 ACID 事务?OLTP 数据库(SQLQ,也会有用于数据分析的 OLAP 数据库(NoSQLQ。除此之外,它们q有其他各种数据存储pȝQ比如用于搜索的 Solr、ElasticSearchQ用于计的 Spark。企业基于数据库构徏自己的数据^収ͼ?OLTP 数据库的数据拯到数据湖中。各U类型的数据应用E序Q比?OLAP、搜索)数据湖作ؓ它们的事实来源?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">HDFS 原本是事实上的数据湖Q直C马逊推Z对象存储 S3。S3 可׾~,h便宜Q很快就成ؓ很多公司事实上的数据湖。?S3 唯一的问题是数据q_被紧紧地l定在亚马逊的 AWS 云^C。虽然微?Azure 推出?Blob StorageQ谷歌也有类似的对象存储Q但都不?S3 的对手?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">对于很多公司来说QMinIO 或许是它们的救星。MinIO 是一个开源的对象存储Q与 S3 兼容Q提供了企业U的支持Qƈ专门Z原生环境而构建,提供了与云无关的数据湖?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/258809d816b141dfb3448edd4ab5d9b8.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">微Y?Azure Marketplace 是这么描q?MinIO 的:“?Azure Blog Storage 服务提供与亚马?S3 API 兼容的数据访?#8221;。如果谷?GCP 和其他云厂商也提?MinIOQ那么我们将会向多云q出一大步?/p><h3>大数据批处理QSpark l闪耀</h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">现如今,企业通常需要基于大规模数据执行计算Q所以需要分布式的批处理作业。Hadoop ?Map-Reduce 是第一个分布式批处理^収ͼ后来 Spark 取代?Hadoop 的地位,成ؓ真正的批处理之王。Spark 是怎样提供了比 Hadoop 更好的性能的?我之前写了另一文章,对现代数据^台进行了深入分析?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">https://towardsdatascience.com/programming-language-that-rules-the-data-intensive-big-data-fast-data-frameworks-6cd7d5f754b0</p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">Spark 解决?Hadoop Map-Reduce 的痛点,它将所有东西放在内存中Q而不是在完成每一个昂늚操作之后把数据保存在存储pȝ中。尽?Spark 重度使用 CPU ?JVM 来执行批处理作业Q但qƈ不妨它成ؓ 2020 q批处理框架之王。我希望有h能够使用 Rust 开发出一个更加高效的批处理框Ӟ取代 SparkQƈZ业省下大量的云资源费用?/p><h3>大数据流式处理:Flink 是未?/h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">几年前,实现实时的流式处理几乎是不可能的事情。一些微Ҏ处理框架Q比?Spark StreamingQ可以提?#8220;几近”实时的流式处理能力。不q,Flink 改变了这一状况Q它提供了实时的式处理能力?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">2019 q之前,Flink 未能得到_的关注,因ؓ它无法撼?Spark。直?2019 q?1 月䆾Q中国巨头公叔R里巴巴收购了 Data ArtisanQFlink 背后的公司)?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/ac0bbdee81f849ab9c5f27752b0d72b1.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">?2020 q_企业如果惌q行实时式处理QFlink 应该是不二之选。不q,?Spark 一PFlink 同样重度依赖 CPU ?JVMQƈ且需要用大量的云资源?/p><h3>字节码:WebAssembly被q泛采用</h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">我从 JavaScript 作?Brandon Eich 的一ơ访谈中知道?WebAssembly q个东西。现?JavaScriptQES5 之后的版本)是一门优U的编E语aQ但与其他编E语a一P都有自己的局限性。最大的局限性是 JavaScript 引擎在执?JavaScript 旉要读取、解析和处理“抽象语法?#8221;。另一个问题是 JavaScript 的单U程模型无法充分利用CgQ如多核 CPU ?GPUQ。正因ؓq些原因Q很多计密集型的应用程序(如游戏?D 囑փQ无法运行在览器中?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">一些公司(?Mozilla 带领Q开发了 WebAssemblyQ一U底层字节码格式Q让M一门编E语a都可以在览器中q行。目前发布的 WebAssembly 版本可以支持 C++、Rust {?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/905b5e69be0e464ba62a95d2fe056554.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">WebAssembly 让计密集型应用E序Q比如游戏和 AutoCADQ可以在览器中q行。不q,WebAssembly 的目标不仅限于此Q它q要让应用程序可以在览器之外运行。WebAssembly 可以被用在以下这?#8220;览器外”的场景中?/p><ul style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; list-style-position: initial; list-style-image: initial; margin: 0px 0px 16px; padding: 0px 0px 0px 2em; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><li style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; margin: 0px; padding: 0px; list-style: inherit; line-height: 26px;">Ud讑֤上的混合原生应用?/li><li style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; margin: 0.25em 0px 0px; padding: 0px; list-style: inherit; line-height: 26px;">没有冷启动问题的无服务器计算?/li><li style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; margin: 0.25em 0px 0px; padding: 0px; list-style: inherit; line-height: 26px;">在服务器端执行不受信ȝ代码?br style="-webkit-tap-highlight-color: transparent; box-sizing: border-box;" />我预,2020 q将?WebAssembly 取得H破的一q_很多巨头公司Q包括云厂商Q和C֌会拥抱 WebAssembly?/li></ul><h3>代码Q低代码 / 无代码将更进一?/h3><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">快速的数字化和工业 4.0 革命意味着软g开发者的供需~口巨大。由于缺乏开发h员,很多企业无法实现它们的想法。ؓ了降低进入Y件开发的门槛Q可以尝试无代码QNo CodeQ或低代码(Low CodeQY件开发,也就是所谓的 LCNCQLow-Code No-Code)。它已经?2019 q取得了一些成功?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;"><img src="https://ucc.alicdn.com/pic/developer-ecology/5031e92ebc28440fb85e647450418ae8.png" alt="image.png" style="-webkit-tap-highlight-color: transparent; box-sizing: content-box; border: 0px none; background-color: rgba(255, 255, 255, 0.1); max-width: 100%; height: auto;" /></p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">LCNC 的目标是让没有编E经验的Z能开发YӞ只要他们惌实现自己的想法?/p><p style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin: 0px 0px 16px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff;">虽然我对在正式环境中使用 LCNC 框架仍然心存疑虑Q但它ؓ其他公司奠定了良好的基础Q像亚马逊和hq样的公司可以基于这个基构徏出有用的产品Q就?AWS Lambda 的蓬勃发展是以谷?App Engine 为基?/p><p data-spm-anchor-id="a2c6h.13066369.0.i10.58da6e62uYEUBC" style="-webkit-tap-highlight-color: transparent; box-sizing: border-box; line-height: 26px; margin-top: 0px; margin-right: 0px; margin-left: 0px; padding: 0px; color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; background-color: #ffffff; margin-bottom: 0px !important;">2020 q_LCNC 会获得更多x?/p><img src ="//www.355548.live/paulwong/aggbug/435004.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.355548.live/paulwong/" target="_blank">paulwong</a> 2019-12-30 09:09 <a href="//www.355548.live/paulwong/archive/2019/12/30/435004.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>How to provide a Spring Boot "fat JAR" with external dependencies - 棒球比分大小怎么算|վ//www.355548.live/paulwong/archive/2019/12/27/434997.htmlpaulwongpaulwongFri, 27 Dec 2019 07:47:00 GMT//www.355548.live/paulwong/archive/2019/12/27/434997.html//www.355548.live/paulwong/comments/434997.html//www.355548.live/paulwong/archive/2019/12/27/434997.html#Feedback0//www.355548.live/paulwong/comments/commentRss/434997.html//www.355548.live/paulwong/services/trackbacks/434997.html
//www.codevomit.xyz/bootlog/blog/how-to-provide-spring-boot-fat-jar


https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-executable-jar-format.html

paulwong 2019-12-27 15:47 发表评论
]]>
解决?bin/bash^M: bad interpreter: No such file or directory?/title><link>//www.355548.live/paulwong/archive/2019/12/11/434955.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 11 Dec 2019 05:42:00 GMT</pubDate><guid>//www.355548.live/paulwong/archive/2019/12/11/434955.html</guid><wfw:comment>//www.355548.live/paulwong/comments/434955.html</wfw:comment><comments>//www.355548.live/paulwong/archive/2019/12/11/434955.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.355548.live/paulwong/comments/commentRss/434955.html</wfw:commentRss><trackback:ping>//www.355548.live/paulwong/services/trackbacks/434955.html</trackback:ping><description><![CDATA[在执行shell脚本时提CL错误主要是由于shell脚本文g是dos格式Q即每一行结以\r\n来标识,而unix格式的文件行ֈ以\n来标识?br /> 查看脚本文g是dos格式q是unix格式的几U办法?br />Q?Qcat -A filename 从显C结果可以判断,dos格式的文件行ؓ^M$Qunix格式的文件行ؓ$?br />Q?Qod -t x1 filename 如果看到输出内容中存?d 0a的字W,那么文g是dos格式Q如果只?aQ则是unix格式?br />Q?Qvi filename打开文gQ执?: set ffQ如果文件ؓdos格式在显CZؓfileformat=dosQ如果是unxi则显CZؓfileformat=unix?br /><br /> 解决ҎQ?br />Q?Q用linux命odos2unix filenameQ直接把文g转换为unix格式<br />Q?Q用sed命osed -i -e 's/\r$//' filename 或?sed -i "s/^M//" filename直接替换l尾Wؓunix格式<br />Q?Qvi filename打开文gQ执?: set ff=unix 讄文g为unixQ然后执?wqQ保存成unix格式?img src ="//www.355548.live/paulwong/aggbug/434955.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.355548.live/paulwong/" target="_blank">paulwong</a> 2019-12-11 13:42 <a href="//www.355548.live/paulwong/archive/2019/12/11/434955.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>防止在SPRING BOOT的配|文件中使用明文存储密码 - 棒球比分大小怎么算|վ//www.355548.live/paulwong/archive/2019/11/26/434931.htmlpaulwongpaulwongTue, 26 Nov 2019 07:13:00 GMT//www.355548.live/paulwong/archive/2019/11/26/434931.html//www.355548.live/paulwong/comments/434931.html//www.355548.live/paulwong/archive/2019/11/26/434931.html#Feedback0//www.355548.live/paulwong/comments/commentRss/434931.html//www.355548.live/paulwong/services/trackbacks/434931.htmlhttps://stackoverflow.com/questions/37404703/spring-boot-how-to-hide-passwords-in-properties-file

工作随笔——jasypt-spring-boot使用
https://www.cnblogs.com/zz0412/p/jasypt-001.html

Get史上最优雅加密方式Q没有之一Q?br />https://www.jianshu.com/p/64ceda636e81

使用Jasypt对SpringBoot配置文g加密
https://www.jianshu.com/p/323ec96c46d2




]]>
{ganrao}